javascript - Vuex:我怎样才能更新这个对象的唯一元素?

标签 javascript vue.js vuejs2 vue-component vuex

在其他堆栈溢出问题的帮助下,我已经走到这一步了。 基本上,它返回更新单个 id 的新数组。 但是我的 store state 没有更新,为什么? 这是我的 state 对象:

allProducts:[
            {
                "product_name": '',
                "code": '',
                "id": ''

            }
        ],

这是我的突变

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 没有更新。

最佳答案

您缺少 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();
    }

关于javascript - Vuex:我怎样才能更新这个对象的唯一元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54308211/

相关文章:

javascript - 将字符串添加到 href ="javascript"中

javascript - 在 Vue 中使用服务器端渲染时异步数据更改

javascript - V-text-field 自动完成值未设置 v-model 值

javascript - 视觉 : Selecting an option while setInterval is firing

javascript - javascript 如何从数组中只获取一个值

JavaScript:SyntaxError:参数列表后缺少)

javascript - model.find 方法未从数据库返回必填字段

vue.js - Axios 参数未正确附加到 URL

javascript - 无法使用 vue-validator 添加动态验证

typescript - 该表达式不可构造。类型 'typeof import("jspdf")' 没有构造签名