用不同的reducer替换Redux中的整个树项

时间:2016-10-14 05:02:54

标签: javascript reactjs redux react-redux

给出以下redux状态树:

{
    app: {...},
    config: {...},
    page_data: {...}
}

如何根据用户所在的页面将整个单独的缩减器替换为page_data的内容?

例如,我可以有三个缩减器userproductscompetitions。如果我从用户页面切换到产品页面,我希望page_data分支显示:

{
   page_data: {
       productPage: {...}
   }
}

没有引用user因为我不想膨胀应用程序状态,也不需要产品页面上的数据。

注意:我正在使用combineReducers作为参考。

这是可能的,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

对多个Reducer使用相同的名称肯定是错误的。不只是它不受支持,这是错误的做法。您可以使用FLUSH_PAGE_DATA操作实现此目的。调度此操作将刷新所有Reducer中的页面数据。看起来像这样。

case 'FLUSH_PAGE_DATA':
    return {  }; 

然后根据您在每个操作中传递的活动页面,您可以创建不同的页面数据结构。