Javascript 如何使用来自不同包的相同React上下文?

Javascript 如何使用来自不同包的相同React上下文?,javascript,reactjs,Javascript,Reactjs,如何使用来自不同包的相同React上下文 例如,我有包A,它依赖于ui-lib上的common和commondeps,以及ui-lib上的packageAdeps 在ui库中有一个export const context=React.createContext({..}) 在package A和common中,它将是同一上下文的不同实例(因为构建过程中的包不同) 我现在几乎没有选择,但都是。。不太好: 解决方案A:从common中的ui-lib重新导出所有内容,并从packageA仅导入comm

如何使用来自不同包的相同React上下文

例如,我有
包A
,它依赖于
ui-lib
上的
common
common
deps,以及
ui-lib
上的
packageA
deps

ui库中
有一个
export const context=React.createContext({..})
package A
common
中,它将是同一上下文的不同实例(因为构建过程中的包不同)

我现在几乎没有选择,但都是。。不太好:

解决方案A:从
common
中的
ui-lib
重新导出所有内容,并从
packageA
仅导入
common

解决方案B:在
软件包A
中使用两个上下文提供程序(一个来自
ui-lib
,另一个来自
common

更多背景:

  • 我使用的是没有包锁的npm
  • 我需要在
    包A
    通用
    分别在CI上构建时使用此功能
  • A包
    common
    在monorepo内部,
    ui-lib
    是外部包,因此我们在我们的回购中:

  • 我能做什么呢?

    如果同一个包有两个不同的实例,那么这个包在生成的包中是重复的,这是不好的

    • 检查
      ui-lib
      版本是否应相同
    • 检查设备环境处的吊装和包装连接
    — packages
    —— packageA (deps on `common` from same monorepo and `ui-lib` )
    —— common (deps on `ui-lib`)