javascript - 嵌套提供程序在 react-native 中无法正常工作
问题描述
这是应用程序文件:
import React from 'react';
import { createAppContainer, createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import { createBottomTabNavigator } from 'react-navigation-tabs';
import AccountScreen from './src/screens/AccountScreen';
import SigninScreen from './src/screens/SigninScreen';
import SignupScreen from './src/screens/SignupScreen';
import TrackListScreen from './src/screens/TrackListScreen';
import TrackDetailScreen from './src/screens/TrackDetailScreen';
import TrackCreateScreen from './src/screens/TrackCreateScreen';
import {setNavigator} from './src/navigationRef';
import ResolveAuthScreen from './src/screens/ResolveAuthScreen';
import {Provider as LocationProvider} from './src/context/LocationContext';
import {Provider as AuthProvider} from './src/context/AuthContext';
const switchNaivgator= createSwitchNavigator({
ResolveAuth:ResolveAuthScreen,
loginFlow: createStackNavigator({
Signup:SignupScreen,
Signin:SigninScreen
}),
mainFlow: createBottomTabNavigator({
trackListFlow: createStackNavigator({
TrackList:TrackListScreen,
TrackDetail:TrackDetailScreen
}),
TrackCreate:TrackCreateScreen,
Account:AccountScreen
})
});
const App= createAppContainer(switchNaivgator);
export default () => {
return (
<LocationProvider>
<AuthProvider>
<App
ref={ navigator => {
setNavigator(navigator)
}}
/>
</AuthProvider>
</LocationProvider>
);
}
在这种情况下,我无法使用 LocationProvider 中定义的函数,但可以使用 AuthProvider 中的变量..!!如果我重写该部分,则相同
export default () => {
return (
<AuthProvider>
<LocationProvider>
<App
ref={ navigator => {
setNavigator(navigator)
}}
/>
</LocationProvider>
</AuthProvider>
);
}
现在我可以使用 LocationProvider 中定义的值,但无法访问 AuthProvider 中的值..!!
解决方案
推荐阅读
- excel - 根据列中的 ID 值选择最大值的函数
- facebook - 浏览器插件如何在没有选择加入的情况下获取 Facebook 中的群组成员详细信息?
- javascript - jsTree排序函数回收
- php - 如何在 Wordpress 上的帖子标题后添加内容?仅在帖子标题上
- visual-studio-2019 - Visual Studio 2019 16.6.1 缓慢且无响应
- soap - WSO2 Enterprise Integrator:在数据服务上启用安全性:无法对安全令牌进行身份验证或授权
- validation - 是否可以在 Yii2 中将自定义验证器与唯一验证器一起使用或在其内部使用?
- c# - 在同一个类中使用来自另一个方法的变量-c#
- firebase - 为什么我的 React Native FlatList keyExtractor 返回未定义?
- django - 如何使用序列化仅序列化某些字段?