借助其他堆栈溢出问题,我到现在为止。
基本上,它将返回更新单个ID的新数组。
但是我的store
state
没有更新为什么?
这是我的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
没有更新。
答案 0 :(得分:2)
您缺少state
作为突变方法中的第一个参数:
state:{
allProducts:[
{
"product_name": '',
"code": '',
"id": ''
}
]
}
和突变:
UPDATE_PRODUCT : (state,payload) =>{
let updatedProducts = state.allProducts.map(product => {
if(product.id === payload.id){
return Object.assign({}, product, payload);
}
return product;
})
state.allProducts = updatedProducts.slice();
}
答案 1 :(得分:1)
您要在此处替换参考,而丢失原始参考
allProducts = updatedProducts;
相反,您应该对其进行变异
allProducts.length = 0;
Array.prototype.push.apply(allProducts, updatedProducts);