【问题标题】:Observer stop working when object changed Vue.js当对象更改 Vue.js 时,观察者停止工作
【发布时间】:2020-12-03 20:02:24
【问题描述】:

当我在对象中添加动态键时,输入中的观察者停止工作。例如:

<template lang="pug">
 input#field(v-model="block[current]")
 button(@click="current = 'de'") change
 button(@click="addVal") add
 
</template>
<script>
data() {
 return {
   current: "en"
   block: {}
 }
},
methods: {
 addVal() {
   this.block.de = "adawdawdawd";
 }
}

</script>

现在如果我输入#fielblock.de 将无法工作。但如果我不添加值,它就可以正常工作。

【问题讨论】:

    标签: vue.js pug


    【解决方案1】:

    尝试使用this.$set 更新它,因为您有反应性问题:

    this.$set(this.block,"de" , "adawdawdawd");
    

    【讨论】:

    • 如果我的代码是:block.fields[key].value[lang.value] = block.fields[key].value[this.computed_languages.default]
    • 也许你知道我是否有值:default.value 和 current.value.. 我如何设置 current.value = default.value 但没有观察者,因为 default.value 不会被 current.value 改变时我改变 current.value?
    • 没有观察者是什么意思
    • 如果我在数据中设置current.value = default.value,并且只更改current.valuedefault.value 将自动更改。我现在用JSON.stringify(default.value) 放弃观察者。并像 = current.value = JSON.parse(default.value) 一样使用它,在这种情况下,观察者会掉线。但也许 vuejs 有另一种方式。
    • Vuejs方式是使用$set方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2017-10-24
    相关资源
    最近更新 更多