给出以下redux状态树:
{
app: {...},
config: {...},
page_data: {...}
}
如何根据用户所在的页面将整个单独的缩减器替换为page_data
的内容?
例如,我可以有三个缩减器user
,products
,competitions
。如果我从用户页面切换到产品页面,我希望page_data
分支显示:
{
page_data: {
productPage: {...}
}
}
没有引用user
因为我不想膨胀应用程序状态,也不需要产品页面上的数据。
注意:我正在使用combineReducers作为参考。
这是可能的,最好的方法是什么?
答案 0 :(得分:0)
对多个Reducer使用相同的名称肯定是错误的。不只是它不受支持,这是错误的做法。您可以使用FLUSH_PAGE_DATA
操作实现此目的。调度此操作将刷新所有Reducer中的页面数据。看起来像这样。
case 'FLUSH_PAGE_DATA':
return { };
然后根据您在每个操作中传递的活动页面,您可以创建不同的页面数据结构。