您需要更改一个变量,但此变量在存储区中,因此我共享了数据
数据类型
export const lists =[
{
"id":1,
"listname":"2022-09-09 00:00:00",
"products":[
{
"id":1,
"idlist":1,
"product":"milk",
"quantity":1,
"measure":"liter",
"status":false
},
{
"id":2,
"idlist":1,
"product":"bread",
"quantity":1,
"measure":"Kg",
"status":false
},
]},
]
我要更改的数据是状态
我在reduce中想到了这个想法,在action中定义了action
case CHANGE_PRODUCT_STATUS:
const newList = state.lists.products.findIndex(
(product) => product.id === action.productId
);
if (newList === -1) return state;
return {
...state,
lists: state.lists.products[newList].status = !state.lists.products[newList].status,
};
它给我一个错误undefined不是一个对象(评估'state.lists. products. findIndex')
我该怎么修呢谢谢
1条答案
按热度按时间pb3s4cty1#
没有
lists.products
,因为lists
是一个内部只有一个元素的 * 数组 *。lists[someArrayIndexHere].products
应该可以工作。