有没有更好的方法从 Vuetify 组件中捕获错误?

Posted

技术标签:

【中文标题】有没有更好的方法从 Vuetify 组件中捕获错误?【英文标题】:Is there is a better way to capture erros from Vuetify components? 【发布时间】:2017-09-03 03:39:58 【问题描述】:

我正在使用 Vue.js 库 Vuetify 在我创建的组件中添加一些文本字段组件。为了提供输入验证,我想捕获文本字段组件的 hasError 属性。我知道该属性的路径是:this.$children[3]._computedWatchers.hasError.active。但我想知道是否有其他方法可以访问这些属性。也许我错过了什么?

 <template>
  <div class="register">
    <form>
      <div>
        <v-text-field name="new-user-email"
                      label="Email"
                      type="email"
                      single-line
                      required></v-text-field>
      </div>
      <div>
        <v-text-field name="user-user-password"
                      label="Password"
                      type="password"
                      single-line
                      required>
        </v-text-field>
      </div>
      <div>
        <v-text-field name="new-user-password-confirmation"
                      label="Confirm Password"
                      type="password"
                      single-line
                      required>
        </v-text-field>
      </div>
      <div @click="registerNewUser">
        <v-btn>Register</v-btn>
      </div>
    </form>
  </div>
</template>

<script>
export default 
  name: 'register-new-user',
  data() 
    return 
      checked: false
    ;
  ,
  methods: 
    registerNewUser() 
      console.log(this.$children[3]._computedWatchers.hasError.active)
      console.log('Register a new user')
    
  
;
</script>

【问题讨论】:

【参考方案1】:

v-text-field 组件添加ref 属性,如下所示:

<v-text-field 
  ref="password-confirmation"
  name="new-user-password-confirmation"
  label="Confirm Password"
  type="password"
  single-line
  required
></v-text-field>

然后您可以像这样引用 Vuetify 文本字段组件(及其属性和方法)的 VueComponent 实例:

methods: 
  registerNewUser() 
    console.log(this.$refs['password-confirmation'].hasError)
  

Here's documentation on refs.

【讨论】:

非常好,这正是我想要的。非常感谢。 由于某种原因使用...hasError.active 会产生未定义的错误。 hasError 可以正常工作。 是的,它只是属性名称。我更新了答案

以上是关于有没有更好的方法从 Vuetify 组件中捕获错误?的主要内容,如果未能解决你的问题,请参考以下文章

vuetify 规则功能 - 如何在验证期间访问组件标签?

未知的自定义元素:使用 vuetify 组件时的 <v-app>

如何在 Laravel 的其他 Vue/Vuetify 组件中嵌入 Vue/Vuetify 组件?

覆盖 Vuetify Icon 组件

Vuetify VIcon 没有出现在 Storybook 中

Vuetify 评级组件未呈现