我正在使用 React + Redux,在阅读了 react-router-redux 后和 redux-router ,并阅读后 Dan Abramov's answer ,我决定使用“vanilla”react-router(此时我不关心时间旅行等)。
剩下的唯一悬而未决的问题是如何处理不同路由之间的状态。每个路由子树都可以是我的应用程序中不同且独立的部分(特别是当它变得更大时)。让一个商店处理所有路由/页面仍然是一种好的做法吗?我不应该(至少)为每个主要路线设置不同的商店/状态吗?
我认为路由应该是某种无状态和独立的,这意味着如果我直接转到我的链接之一,它应该可以工作,并且不会意识到其他同级路由。我应该将其反射(reflect)给我的商店吗?
编辑
经过更多思考,我想使用不同的 reducer +“CombineReducers”就能解决问题。我唯一需要验证的是,导航时以前的路线状态不会持续
请您参考如下方法:
验证以前路由的状态不会持续存在的可能解决方案:
当用户在页面之间导航时,每个路由中的顶级组件都会安装和卸载。您可以使用它们的生命周期方法发送任何 redux 事件来清理您的状态。
例如,从 componentWillUnmount 发送 CLEAN_STATE。您应该在顶级 reducer 中捕获此事件并从中返回初始状态。为此,您可以使用 undefined 作为状态参数手动调用所有嵌套化简器。在这种情况下,每个 reducer 将返回其初始状态。






