更改时,Vuetify v-text-field不会更新值。即使在$ forceUpdate()

时间:2019-06-28 11:10:27

标签: vue.js vuetify.js v-model

更改v-text-field时不更新值。即使在$ forceUpdate()上以及在使用$ set

我试图在没有$ forceUpdate和$ set的情况下使用它,但是即使同时使用这两种方法,它也无法工作

举例说明确实的作用没有的作用: https://jsfiddle.net/gu273qy0/3/

不起作用的示例的功能: https://jsfiddle.net/gu273qy0/5/

在两个示例中都可以使用此javascript

new Vue({
  el: "#app",
  data: () => ({
    todos: ['']
  }),
  methods: {
    setText(index, todo){
        if (todo.toString().match(/^((([A-Z]{3})[UJZ](\d{0,7}))|[A-Z]{0,3})$/)) {
        this.$set(this.todos, index, todo)
      }

      this.$forceUpdate()
    },
    addText() {
        console.log(this.todos)
            this.todos.push('')
    }
  }
})

我希望vuetify和没有vuetify都能使用完全相同的实现。不幸的是,这种情况并非如此。仅非可视化示例有效。

有效值或待办事项的示例为AAAU0101201

无效值的示例是AAAA

1 个答案:

答案 0 :(得分:0)

我无法真正解释为什么使用Vuetify或不使用Vuetify都不会得到相同的结果,但是实际上,使用Vuetify示例,如果输入错误的值,则不会修改todos数组,因此该模型将不会无法更新

我认为您应该例如处理@blur事件: https://jsfiddle.net/v6m2tyrs/1/