重新检查阵列突变



我构建了我的第一个 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),这将确保您始终返回具有新状态的新对象。

相关内容

  • 没有找到相关文章

最新更新