【发布时间】:2019-06-15 22:04:44
【问题描述】:
在其他堆栈溢出问题的帮助下,我已经走到了这一步。
基本上,它返回更新单个 id 的新数组。
但是我的storestate没有更新,为什么?
这是我的state 对象:
allProducts:[
{
"product_name": '',
"code": '',
"id": ''
}
],
这是我的mutation。
UPDATE_PRODUCT : ({allProducts},payload) =>{
let updatedProducts = allProducts.map(product => {
if(product.id === payload.id){
return Object.assign({}, product, payload);
}
return product;
})
allProducts = updatedProducts;
}
如果我console.log(updatedProducts),我会变得非常好result。但是我的allProducts 没有更新。
【问题讨论】:
-
根据此处的文档:vuex.vuejs.org/guide/mutations.html 您需要将
state作为第一个参数传递给您的突变,而不是它的子对象。所以你的突变应该是这样的:UPDATE_PRODUCT : (state,payload) -
对解构对象参数(即
allProducts = updatedProducts)的赋值操作不会更新它来自的对象中的值
标签: javascript vue.js vuejs2 vue-component vuex