React + Redux + Router - 我应该为所有页面/组件使用一个状态/存储吗?

时间:2016-05-08 06:25:22

标签: reactjs react-router redux react-router-redux

我正在使用React + Redux,在阅读了react-router-reduxredux-router后,在阅读了Dan Abramov's answer之后,我决定使用" vanilla"反应路由器(此时我并不关心时间旅行等)。

唯一未解决的问题是如何处理不同路线的状态。每个路径子树在我的应用程序中可以是一个不同且独立的部分(特别是当它变大时)。拥有一家商店来处理所有路线/页面仍然是一个好习惯吗?我不应该(至少)为每条主要路线路径设置不同的商店/州吗?

我认为路线应该是某种无国籍和独立的,这意味着如果我直接进入我的一个链接,它应该有效,并且不会意识到其他兄弟路线。我应该把它反映到我的商店吗?

修改

经过一番思考后,我想使用不同的减速器+" CombineReducers"会做的。我唯一需要验证的是,在导航时,以前的路线状态不会持续

1 个答案:

答案 0 :(得分:2)

确认前路线状态不存在的可能解决方案:

当用户在页面之间导航时,每个路径中的顶级组件都在挂载和卸载。您可以使用他们的生命周期方法发送任何redux事件来清理您的状态。

例如,从CLEAN_STATE发送componentWillUnmount。您应该在它的顶级reducer end return初始状态中捕获此事件。要执行此操作,您可以手动调用所有嵌套的Reducer,并将undefined作为状态参数。在这种情况下,每个reducer将返回它的初始状态。