我从Vuex开始,然后在这个示例中加上Shopping-cart。 在模块购物车(store / modules / cart.js)的操作中,我找到了这段代码
// line 30
// actions
const actions = {
checkout ({ commit, state }, products) {
const savedCartItems = [...state.items]
commit('setCheckoutStatus', null)
// empty cart
commit('setCartItems', { items: [] })
shop.buyProducts(
products,
() => commit('setCheckoutStatus', 'successful'),
() => {
commit('setCheckoutStatus', 'failed')
// rollback to the cart saved before sending the request
commit('setCartItems', { items: savedCartItems })
}
)
},
//....
state.items
是我要检出的项目。
我正在询问const savedCartItems = [...state.items]
。是否需要使用传播算子?如果我执行const savedCartItems = state.items
,则我的应用程序似乎正在运行。我错过了什么吗?
谢谢你,美好的一天
答案 0 :(得分:0)
与众不同的是,使用散布运算符可以保证您
items
为undefined
,则散布运算符不会崩溃。因此,基本上,这将创建原始数组的浅表副本,在某些情况下可能需要这样做。除此之外,我要说的没有关键区别。