【发布时间】:2020-11-17 06:00:55
【问题描述】:
我对 Redux 还很陌生。
我的 Web 应用程序是一个电子商务网站,其中用户有多个购物车(每个都有一个 id 和名称),并且可以在每个购物车中放置不同的商品(在 items 数组中)。
当用户从购物车中删除商品时,我的 console.log() 语句显示购物车数组正在商店中更新,但是除非我在购物车内插入新的购物车对象,否则用户界面不会反映这一点数组。
-
为什么我不能像更新存储中的普通数组一样更新嵌套数组?
-
我该如何解决这个问题?
我的初始商店
const intialStore = {
carts: [],
first_name : "ford",
last_name : "doly"
}
我的减速器功能
export default function reducer (store = intialStore, action) {
let {type, payload} = action;
switch(type) {
case DELETE_ITEM_IN_A_CART : {
let carts = [...store.carts]
let newCarts = carts.map((cartItem, index) => {
if (index == payload.cartIndex){
let array = [...cartItem.items]
array.splice(payload.itemIndex, 1)
cartItem.items = [...array ]
}
return cartItem ;
})
console.log(carts)
//carts[payload.cartIndex].items.splice(payload.itemIndex, 1)
return {...store, carts : newCarts}
}
default:
return {...store}
}
我的动作创建者
export const deleteitemInCart = (cartIndex, itemIndex) => {
return {
type: DELETE_ITEM_IN_A_CART,
payload: {
cartIndex,
itemIndex
}
}
}
【问题讨论】:
标签: javascript reactjs redux react-redux jsx