【问题标题】:Vuetify Combobox not updating to correct valueVuetify Combobox 未更新为正确值
【发布时间】:2020-09-10 18:12:57
【问题描述】:

我有一个 Vuetify 组合框,它在保存时会调用 api 来存储所选或输入的值。但是,在更新此值时,如果直接单击保存按钮而不取消选择组合框,则会再次存储先前存储的值,而不是新值。只有当我手动取消选择该框或按 Enter 时,才会存储正确的值。我环顾四周,发现某些对其他人有用的修复程序,例如 .blur() 和 .$nextTick,但它们似乎对我不起作用(我可能错误地实现了它们)。这是我所拥有的:

组合框:

<v-combobox
  :items="suggestions"
  v-model="editedItem.field_label"
  label="Label"
  outlined
  dense
  ref = "comboBox"
></v-combobox>

保存按钮:

<v-btn color="blue darken-1" text @click="save"> Save</v-btn>

保存功能:

save() {
  this.$refs.comboBox.$emit("blur")
  this.$nextTick(() => {
    const device_field = {
      ...this.editedItem,
    };
      device_field_api
        .updateDeviceField(device_field, this.device_id)
        .then((r) => {
          //Various logging items
          );
        })
        .finally(this.initialize())
        .catch((e) => {
          //Error catching
          );
        });
    });
  }

【问题讨论】:

  • 你能提供一些关于数据属性的小提琴或更多信息吗?
  • 一切正常。 device_field 在您尝试登录时始终会更新。也许它与您如何获取和/或如何存储有关,或者完全与其他事情有关。您可以创建fiddle,以便我们更好地帮助您。

标签: vue.js combobox vuetify.js


【解决方案1】:

改变 this.$refs.comboBox.$emit("blur") 对此: this.$refs.comboBox.blur().

Codepen example

结果:

【讨论】:

  • 之前试过,结果不变。
  • 这里是一个工作示例:codepen.io/lazac92/pen/eYZjzEy?editors=1011
  • 这个例子既适用于我的方式,也适用于改变。错误必须在我的代码中的其他地方。
猜你喜欢
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 2019-03-07
  • 2018-02-24
  • 2020-03-30
相关资源
最近更新 更多