Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 lib覆盖您的web应用程序上下文_Javascript_Reactjs_React Context - Fatal编程技术网

Javascript React lib覆盖您的web应用程序上下文

Javascript React lib覆盖您的web应用程序上下文,javascript,reactjs,react-context,Javascript,Reactjs,React Context,我想知道关于react上下文的好模式 让我们获得一个公共库,例如,react intl,它公开了一个提供者(IntlProvider)。 让我们创建一个库barLib,它使用react intl在内部管理翻译,还公开了一个提供者。 现在让我们想象一下,我创建了一个web应用程序,并同时使用barLib和react intl 我不希望barLib会覆盖我的react intl上下文,因为我不知道它在内部使用react intllib。 但是barLib可能会意外地覆盖react intl cont

我想知道关于react上下文的好模式

让我们获得一个公共库,例如,
react intl
,它公开了一个提供者(IntlProvider)。 让我们创建一个库
barLib
,它使用
react intl
在内部管理翻译,还公开了一个
提供者。
现在让我们想象一下,我创建了一个web应用程序,并同时使用
barLib
react intl

我不希望
barLib
会覆盖我的react intl上下文,因为我不知道它在内部使用
react intl
lib。 但是
barLib
可能会意外地覆盖react intl context=>

这打破了libs IMO的孤立性

我看到了几种解决方案:

  • 不要在
    barLib
    中使用其他库上下文(非常极端)
  • 检查
    barLib
    中是否已存在intl上下文,如果已存在,是否合并上下文值

我对这两种解决方案都不满意,你们对此有何看法?

在给出更多想法后。我认为您应该将
react intl
库标记为
barLib
中的对等依赖项,并记录要使用barLib,需要将其包装在
react intl
上下文中


总之,如果您想在库中使用上下文,只需将其设置为对等依赖项,在给出更多想法后,不要将提供者放入其中。我认为您应该将
react intl
库标记为
barLib
中的对等依赖项,并记录要使用barLib,需要将其包装在
react intl
上下文中

总之,如果您想在库中使用上下文,只需将其设置为对等依赖项,而不要将提供者放在其中