【发布时间】:2019-03-28 04:38:43
【问题描述】:
我有一个在 html 页面上呈现多个根的应用程序。 每个根在网站上呈现不同(或可能相同)的页面或组件。 该应用程序包含一个 redux 商店,因为每个根共享同一个应用程序。 为避免冲突,为每个根生成一个 redux 存储。
现在 redux 商店有延迟负载减少器。 在加载代码拆分组件时添加减速器。
为了适应这种情况,在 store 中添加了一个函数来从 redux 调用 replaceReducer。
所以当一个组件被加载并且还需要加载一个 reducer 时,问题就出现了。 组件需要从 redux 提供者访问根存储。
这是通过使用旧的 react 上下文 api 中的 contextTypes 来访问商店来实现的。包装器组件中的 contextTypes 拉取存储的当前根实例。
但是使用新的 react context api,这似乎不兼容。 建议是创建一个上下文文件并在任何子组件中使用它。 这样做,我需要将商店放入反应上下文提供者值中。 但是这样做意味着 react 上下文将只保存 1 个 store 实例。
如何让它像旧的 react contextTypes 一样工作以相应地访问根级别的提供者上下文?
【问题讨论】:
标签: javascript reactjs redux react-redux react-context