我有一个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
的参数传入?
答案 0 :(得分:0)
AFAIK,上下文API的挂钩和方法受APP边界内的内存中数据约束。如果需要将数据传递到其他程序包或应用程序中加载的程序包,则只需传递对象并在程序包代码内重新构建react上下文即可。