用不同的减速器替换Redux中的整个树项目
Replacing entire tree item in Redux with different reducer
给定以下redux状态树:
{
app: {...},
config: {...},
page_data: {...}
}
我如何根据用户所在的页面将page_data
的内容替换为整个单独的减速器?
例如我可以有三个还原剂user
, products
, competitions
。如果我从用户页面切换到产品页面,我希望page_data
分支显示:
{
page_data: {
productPage: {...}
}
}
没有引用user
,因为我不想让应用程序状态膨胀,也不需要产品页面上的数据。
注意:我使用combineReducers作为参考
这可能吗?最好的方法是什么?
对多个减速器使用相同的名称是绝对错误的。它不仅不受支持,而且是错误的做法。您可以使用FLUSH_PAGE_DATA
操作来实现这一点。调度此操作将刷新所有reducer中的页面数据。它看起来像这样。
case 'FLUSH_PAGE_DATA':
return { };
然后根据您的活动页面,您将在每个操作中传递,您可以创建不同的页面数据结构。
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 正在将数据主题添加到所有项目
- 我如何找到一个句子中的所有空格并替换忽略它们
- 如何删除重复的选定项目并替换为数量
- 用相同的键替换/更改项目
- 使用下划线一个接一个地替换每个项目(li)
- 替换字符串中的项目
- 替换项目而不是提供整个路径
- JavaScript:有没有更好的方法来保留你的数组,但有效地连接或替换项目
- 通用控件替换项目 - 如何开始
- 下划线 js 替换对象中的项目
- 查找和替换 JSON 文件中的项目
- 下划线.js:替换集合中的项目
- jQuery UI可排序-替换掉的项目的内容
- 使用Gulp和Gulp替换名称克隆一个项目,但重命名多个文件夹中包含某个单词的文件
- 用不同的减速器替换Redux中的整个树项目
- JQuery Ajax用JQuery函数替换项目
- 替换数组中项目的实例
- Meteor:如何将项目推送到用户集合并创建列表或数组,而不是用新项目替换每个项目
- 替换两个项目之间的字符串