我构建了我的第一个 React-Redux 应用程序,我需要帮助了解我是否在我的化简器函数上更改了一个数组。
我正在测试的操作是选择项目:根据操作传递的选择更新"选定"布尔属性
它是一个包含对象的数组:
"allItems":[
{
"id": 1,
"name": "item1",
"selected": false
},
{
"id": 2,
"name": "item2",
"selected": false
},
{
"id": 3,
"name": "item3",
"selected": false
},
{
"id": 4,
"name": "item4",
"selected": false
}
]
现在减速器:
const allItems = (state=[], action) => {
switch(action.type){
case "SELECT_ITEM" :
return state.map( (item, index) => {
if(item.id === action.payload.id){
return { ...item, selected: true}
}
else
{
return {...item, selected: false}
}
})
default:
return state
}
}
谢谢
例如,我建议您返回一个Object.assing({}, item, selected: true)
,这将确保您始终返回具有新状态的新对象。