无法筛选Redux Reducer中的数据



我正试图为ToDo应用程序创建一个reducer,我已经成功地创建了一个Add reducer但不知何故,我无法根据ID过滤数据。假设我的ID是1,那么如果有一个ToDo Bucket(Bucket基本上是我创建ToDo的父级(,那么就获取该ToDo Bucklet数据。

在我检查过的Redux开发工具中,它向我显示了一个filteredData对象的无限层次树。但没有直接显示Bucket ID 1数据,与delete reducer相同。有人能帮我强调一下我到底做错了什么或遗漏了什么吗。

case EDIT_TODO_BUCKET: {
return (
{
...state,
data: {
...state.data,
[action.payload.id]: {
...state.data[action.payload.id],
filteredData: state.data[action.payload.id]
}
}
}
)
}
case DELETE_TODO_BUCKET: {
return (
{
...state,
data: {
...state.data,
[action.payload.id]: {
...state.data[action.payload.id],
}
}
}
)
}
case DELETE_TODO_BUCKET: {
return (
{
...state,
data: {
...state.data,
[action.payload.id]: {
...state.data[action.payload.id],
}
}
}
)
}

^阅读这篇文章,除了每次都创建一个新的参考之外,它什么都不做。

我想你可能想要以下内容:

return {
...state,
// removes the key of action.payload.id from the state.data
data: Object.entries((acc,[key,value]) => key === action.payload.id ? acc : ({...acc,[key]:value}),{})
}

相关内容

  • 没有找到相关文章

最新更新