我在react redux商店中存储了一个数组。这些项目包含title
以及所有(无id
字段)。
当我触发动作时,我尝试通过减速器用
更新我的商店case REMOVE_NOTIFICATION:
return {
...state,
notifications: state.notifications.filter(id => action.id !== id)
}
action.id
是正确的,但称这似乎没有做任何事情。我预计它将返回一个新的项目数组,其中action.id与传入的项目的ID不匹配。我是否正确地认为id
实际上是数组项的索引?
答案 0 :(得分:2)
否在过滤器功能中,第一个参数始终为值,第二个参数为索引/键
试试这个:)
case REMOVE_NOTIFICATION:
return {
...state,
notifications: state.notifications.filter((obj,index) => {return action.id !== index})
}
答案 1 :(得分:2)
我是否正确假设id实际上是数组项的索引?
没有。根据{{3}},您的 id 参数将是数组项(内容),而不是其索引。
您可以在过滤器功能的第二个参数上访问项目的索引:
case REMOVE_NOTIFICATION:
return {
...state,
notifications: state.notifications.filter((item, index) => action.id !== index)
}