【发布时间】:2019-08-29 10:27:43
【问题描述】:
我有 Store,我有 actions 和 mutations
我的操作 loadProducts 调用了突变 setProducts,我在其中设置了 state 中的值,它工作正常
const actions = {
loadProducts({ commit }, accountId ) {
Products.where( { accountId: accountId } ).all().then((products) => {
commit("setProducts", {accountId: accountId, products: products.data})
});
},
}
const mutations = {
setProducts(state, {accountId, products}) {
Vue.set(state, 'products', products);
}
}
然后在我的组件中,我使用 mapGetters 和 computed
获取数据 computed: {
...mapGetters([
'products'
]),
products2() {
console.log(this.products)
return this.products;
}}
一切正常,但随后我尝试更新数据,它也有效,我得到更新状态 - 在 Vuex 控制台中,我可以看到我的更新状态和新数据,但视图本身不会更新 - 所以我有重新加载页面,查看数据出现。 我也通过动作、突变和吸气剂来做到这一点,在突变中它看起来像这样:
replace() {
Vue.set(state, key, val);
}
【问题讨论】:
标签: javascript vue.js