【发布时间】:2020-10-27 15:47:19
【问题描述】:
我正在基于一个对象呈现一个列表。我在突变的帮助下向这个对象添加了新元素。当我将 this.$store.state.myObject 记录到控制台时,我可以看到它正在更新。但是,我的列表没有更新。
实际上,我很幸运,我通过在我的突变中添加下面的代码行来解决这个问题。 (我发现这可以帮助 DOM 更新。)
但我想知道这是否是一个好的解决方案。
state.realms = Object.assign({}, state.realms)
这是我的全部突变:
addToRealms: (state, val) => {
var id = val.id
var realmName = val.name.en_US
state.realms[id] = { name: realmName }
state.realms = Object.assign({}, state.realms)
}
这是我的 vue 页面代码
<q-btn flat
v-for="(realm,code) in realms"
:key="code"
@click="selectRealm(realm)"
:label="realm.name"
clickable/>
我将领域定义为计算属性。
computed: {
realms () {
return this.$store.state.realms
}
更多信息: 我使用 vue.js devtools 扩展,当我在 vuex 商店跟踪我的提交时,我可以看到我真的在改变状态。但它不会立即影响。如果我按下全部提交按钮,我的列表就会更新。
【问题讨论】:
标签: javascript vue.js dom vuex