React context API-与其他软件包共享数据

时间:2020-08-28 19:00:21

标签: reactjs

我有一个react-native应用程序(例如MyMobile),并且我还使用了带有某些共享组件(例如MySharedUX)的react-native库。这两个文件夹都引用相同的本机版本。

package.json (MyMobile){
...
"@MySharedUX" : "file:../MySharedUX"
...

MySharedUX项目中,我创建了一个pageTracking挂钩,该挂钩使用导航上下文。当我从MyMobile项目中的功能组件调用该挂钩时,我得到的导航对象为未定义。

export function usePageTracking(pageName: string): void {
    ...
    const navigation = useContext(NavigationContext);  //navigation is undefined.
    // const navigation = useNavigation();  // navigation is undefined.
    ...

但是,如果我将文件usePageTracking移到MyMobile文件夹中,导航将毫无问题地填充。

尽管软件包MySharedUX是在MyMobile文件夹中执行的,但它不接收上下文数据。

MySharedUX是否可以通过任何方式访问导航上下文,而不必作为usePageTracking的参数传入?

1 个答案:

答案 0 :(得分:0)

AFAIK,上下文API的挂钩和方法受APP边界内的内存中数据约束。如果需要将数据传递到其他程序包或应用程序中加载的程序包,则只需传递对象并在程序包代码内重新构建react上下文即可。