【发布时间】:2021-08-22 14:28:58
【问题描述】:
case ActionTypes.ADD_TO_CART: {
var newOrders = state.cartItems.slice();
let updatedIem = state.cartItems.find(i => {
if (i.id === action.product.id) {
return action.product
}
else {
return null
}
});
if (updatedIem) {
var oldOrder = newOrders[action.itemIndex];
var newOrder = Object.assign({}, oldOrder);
if (action.direction == 1 && newOrder.quantity > 0) {
newOrder.qty++;
newOrder.quantity--;
}
else if (action.direction == -1 && newOrder.qty != 0 && newOrder.quantity > 0) {
newOrder.qty--;
newOrder.quantity++;
}
else null
newOrders[action.itemIndex] = newOrder;
}
else {
newOrders[action.itemIndex] = action.product
}
return {
...state,
cartItems: newOrders,
};
}
此代码在返回的对象中返回一个数组cartItems,但问题是数组元素之一是undefined,如:[{first object}, undefined, {third object}]。
不需要undefined 元素。我知道它来自newOrders[action.itemIndex] 的一项任务,但我不知道如何追踪。
【问题讨论】:
-
你能添加一些标点符号吗?另外,能否请您明确说明您的问题?
-
什么是
state?请上传您的可执行代码! -
const INITIAL_STATE = { cartItems: [] };这是我使用的状态,这里是动作调度(CartActions.addToCart(newOrder,direction,itemIndex))我只想离开而不使用索引并使用id来代替
标签: javascript reactjs typescript react-native redux