我有一个可在html页面上呈现多个根的应用程序。 每个根都在网站上呈现不同(或可能相同)的页面或组件。 该应用程序包含一个redux存储,因为每个根都共享同一应用程序。 为避免冲突,将为每个根生成一个redux存储。
现在,redux存储具有延迟的负载减少器。 在代码拆分组件加载时添加了reducers。
为此,在商店中添加了一个函数,以从redux调用replaceReducer。
因此问题出在加载组件并且还需要加载减速器时。 该组件需要从Redux提供程序访问根存储。
这是通过使用旧的react context api中的contextTypes来访问商店来实现的。包装器组件中的contextTypes拉出商店的当前根实例。
但是使用新的react context API,这似乎不兼容。 建议创建一个上下文文件,并在所有子组件中使用它。 这样做,我将需要将存储放入react上下文提供者值中。 但这意味着React上下文将仅存储该商店的1个实例。
如何使其像旧的react contextTypes一样工作以相应地访问根级别提供程序上下文?
答案 0 :(得分:2)
我认为这是个误会。
基本上,您想要的是使用 new 旧版上下文(这是React Redux当前提供的内容,以及您用contextTypes
阅读的内容)。 >上下文API。这行不通。旧版API和新的上下文API完全无关(即使它们使用相同的用例)。
将来当React Redux切换到新的上下文API时,您应该能够做到这一点。请注意,无论哪种情况,都建议不要将传统上下文API直接与React Redux一起使用,您应该改用connect()
。
答案 1 :(得分:0)
也许this article将帮助您迁移到新的上下文API。 长话短说:您可以使用旧版API传递数据,然后使用新API读取数据。但我不建议您在特定情况下这样做。