我正在使用以下代码将新对象插入数组'items'。但问题是当我插入一个新对象时,它会替换之前添加的对象的内容。通过这种方式,即使添加的对象不同,也始终包含相同的对象。
我听说这是因为使用'push'也传递了参考。我怎么解决这个问题是VueJS
Store.js
FROM java:9
答案 0 :(得分:2)
改为使用spread operator,
mutations: {
ADD (state, item) {
state.quote.items = [...state.quote.items, Object.assign({}, item)]
}
}
不需要传播操作符,您可以这样做:
mutations: {
ADD (state, item) {
state.quote.items.push(Object.assign({}, item))
}
}
答案 1 :(得分:0)
终于得到了答案。解决方案是'使用JSON'
对对象进行字符串化并将其解析回来 mutations: {
ADD (state, item) {
item = JSON.stringify(item)
item = JSON.parse(item)
state.quote.items.push(item)
}
}