Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用动态上下文数据时,如何用新的React上下文api替换旧的React上下文类型?_Javascript_Reactjs_Redux_React Redux_React Context - Fatal编程技术网

Javascript 在使用动态上下文数据时,如何用新的React上下文api替换旧的React上下文类型?

Javascript 在使用动态上下文数据时,如何用新的React上下文api替换旧的React上下文类型?,javascript,reactjs,redux,react-redux,react-context,Javascript,Reactjs,Redux,React Redux,React Context,我有一个在html页面上呈现多个根的应用程序。 每个根用户在网站上呈现不同(或可能相同)的页面或组件。 该应用程序包含一个redux存储,因为每个根用户共享同一个应用程序。 为了避免冲突,将为每个根生成一个redux存储 现在,redux存储具有延迟负载缩减器。 在加载代码拆分组件时会添加减缩器 为了适应这种情况,在存储中添加了一个函数来调用replaceReducerFromRedux 因此,当一个组件被加载并且还需要加载减速器时,问题就出现了。 组件需要从redux提供程序访问根存储 这是通

我有一个在html页面上呈现多个根的应用程序。 每个根用户在网站上呈现不同(或可能相同)的页面或组件。 该应用程序包含一个redux存储,因为每个根用户共享同一个应用程序。 为了避免冲突,将为每个根生成一个redux存储

现在,redux存储具有延迟负载缩减器。 在加载代码拆分组件时会添加减缩器

为了适应这种情况,在存储中添加了一个函数来调用replaceReducerFromRedux

因此,当一个组件被加载并且还需要加载减速器时,问题就出现了。 组件需要从redux提供程序访问根存储

这是通过使用旧的react上下文api中的contextTypes访问存储来实现的。包装器组件中的contextTypes提取存储的当前根实例

但是使用新的react上下文api,这似乎不兼容。 建议创建一个上下文文件,并在任何子组件中使用它。 为此,我需要将存储放入react上下文提供程序值中。 但这样做意味着react上下文将只包含一个存储实例


如何使它像旧的react contextTypes一样工作,从而相应地访问根级别的提供程序上下文?

我认为这里有一个误解

本质上,您想要的是使用新的上下文API读取遗留上下文(React Redux当前提供的内容,以及您使用
contextTypes
读取的内容)。这行不通。旧的和新的上下文API是完全不相关的(即使它们服务于相同的用例)

将来,当React Redux切换到新的上下文API时,您应该能够做到这一点。请注意,在任何一种情况下,都不鼓励直接将旧的上下文API与React Redux一起使用,您可能应该改用
connect()

可能会帮助您迁移到新的上下文API。 长话短说:您可以使用遗留API传递数据,并使用新API读取数据。但我不建议在你的特殊情况下这样做