我正在尝试在 reducer 中添加我的状态。我需要访问一个键,然后添加到该键内的数组中。这就是我目前的状态:
{teamMembers: {
PersonId1: [{ object1 }, {object2 }]
PersonId2: [{ object3 }, { object4 }]
PersonId3: [{ object5 }, { object6 }]
}}
我需要根据操作输入的内容访问 PersonId
,然后将操作中的一项附加到数组中。理想情况下,如果键 PersonId
尚不存在,它还会创建一个新键和数组。
最佳答案
在您的 reducer 中,只需进行一些数据操作即可。请记住仅操作您状态的副本,而不是您的实际状态。
const action = {
payload: {
personId: 'PersonId4',
item: {}
}
}
const state = {
PersonId1: [{ object1 }, {object2 }]
PersonId2: [{ object3 }, { object4 }]
PersonId3: [{ object5 }, { object6 }]
}
const {personId, item} = action.payload
let newState = {...state}
if (personId in newState) {
newState[personId].push(item)
} else {
newState[personId] = [item]
}
return newState
关于javascript - 通过 ReduxReducer 中的键附加到数组访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48776543/