首页 > 解决方案 > react redux reducer中缺少数组

问题描述

我正在尝试检查我的内部数组 id 是否与发送的 id 相同,表示

{
 _id :1,
 name: sagar elias jacky
 Amenities :[{ id: 100, title : hi },{ id: 101, title : hallo } ]
}

检查调度的 id 退出或不使用地图,

return { ...state, 
  items : {...state.items, 
  Amenities : { ...state.items.Amenities
 .map(x=> x._id === action.dispatchedID ?  {...x,deleting: true} :  x ) }}}

但它会以非阵列设施返回,例如

Amenities:
0: { id: 100, title : hi },
1: { id: 101, title : hallo }

我想要这个

Amenities:Array(2)
0: { id: 100, title : hi },
1: { id: 101, title : hallo }

标签: javascriptnode.jsreactjsredux

解决方案


当你在里面传播一个数组时{},它会创建一个数组索引为的对象keys

const array = [{a:1}, {a:2}]
console.log({...array})

所以,改变

Amenities : { ...state.items.Amenities
 .map(x=> x._id === action.dispatchedID ?  {...x,deleting: true} :  x ) }

至:

Amenities : [ ...state.items.Amenities
 .map(x=> x._id === action.dispatchedID ?  {...x,deleting: true} :  x ) ]

推荐阅读