【发布时间】:2020-01-16 20:11:00
【问题描述】:
我想知道有关反应上下文的良好模式。
让我们获取一个公共库,例如react-intl,它公开了一个提供程序(IntlProvider)。
让我们创建一个库barLib,它使用react-intl 在内部管理翻译,并且还公开了Provider。
现在让我们假设我创建了一个 Web 应用程序并同时使用 barLib 和 react-intl。
我不希望 barLib 覆盖我的 react-intl 上下文,因为我不知道它在内部使用 react-intl 库。
但是barLib 可能会意外覆盖 react-intl 上下文 => https://codesandbox.io/s/embedded-contexts-test-z8e7b
这有点打破了 IMO 库的隔离。
我看到了几个解决方案:
- 不要在
barLib中使用其他 lib 上下文(非常极端) - 检查
barLib中是否还没有国际上下文,如果有,合并上下文值?
我对这两种解决方案都不信服,你们怎么看?
【问题讨论】:
标签: javascript reactjs react-context