【发布时间】:2017-02-23 10:03:39
【问题描述】:
给定以下 redux 状态树:
{
app: {...},
config: {...},
page_data: {...}
}
如何根据用户所在的页面将page_data 的内容替换为整个单独的reducer?
例如,我可以拥有三个减速器user、products、competitions。如果我从用户页面切换到产品页面,我希望显示 page_data 分支:
{
page_data: {
productPage: {...}
}
}
没有提及user,因为我不想膨胀应用程序状态,也不需要产品页面上的数据。
注意:我使用 combineReducers 作为参考。
这可能吗?最好的方法是什么?
【问题讨论】:
-
在产品页面上,
dispatch包含productPage的操作,并在reducer中使用productPage创建新状态。 -
这是否仍会在应用状态中包含 userPage?
-
没有。你可以像这样创建一个全新的状态:
Object.assign({ }, oldState, { page_data: { productPage: {... } } } )
标签: javascript reactjs redux react-redux