我正在使用React + Redux,在阅读了react-router-redux和redux-router后,在阅读了Dan Abramov's answer之后,我决定使用" vanilla"反应路由器(此时我并不关心时间旅行等)。
唯一未解决的问题是如何处理不同路线的状态。每个路径子树在我的应用程序中可以是一个不同且独立的部分(特别是当它变大时)。拥有一家商店来处理所有路线/页面仍然是一个好习惯吗?我不应该(至少)为每条主要路线路径设置不同的商店/州吗?
我认为路线应该是某种无国籍和独立的,这意味着如果我直接进入我的一个链接,它应该有效,并且不会意识到其他兄弟路线。我应该把它反映到我的商店吗?
修改
经过一番思考后,我想使用不同的减速器+" CombineReducers"会做的。我唯一需要验证的是,在导航时,以前的路线状态不会持续
答案 0 :(得分:2)
确认前路线状态不存在的可能解决方案:
当用户在页面之间导航时,每个路径中的顶级组件都在挂载和卸载。您可以使用他们的生命周期方法发送任何redux事件来清理您的状态。
例如,从CLEAN_STATE
发送componentWillUnmount
。您应该在它的顶级reducer end return初始状态中捕获此事件。要执行此操作,您可以手动调用所有嵌套的Reducer,并将undefined
作为状态参数。在这种情况下,每个reducer将返回它的初始状态。