我有一个react-native应用程序,我正在使用新的Context API来管理存储和内容,现在我将createAppContainer(AuthNavigator)
封装在上下文api创建的<Provider>
中,因此,为了从Context API文件中导航,我尝试通过创建NavigationService
并将ref
的{{1}}传递到{ {1}},并使用AppContainer
,无论如何它都没有起作用,也没有引发任何类型的错误
这是我的router.js
NavigationService
这是我的导航服务文件
{ NavigationActions }
这是我要从中导航的提供商
这是一个React Context API
const AuthNavigator = createSwitchNavigator(
{
Authenticated: Authenticated,
UnAuthenticated: UnAuthenticated,
},
{
initialRouteName: props.is_authenticated ? 'Authenticated' : 'UnAuthenticated'
}
)
const Router = createAppContainer(AuthNavigator);
return (
<Provider style={{ width: '100%', height: '100%' }}>
<Router ref={ ref => NavigationService.setTopLevelNavigator(ref) } />
<DropdownAlert
successColor="#26296A"
titleStyle={{ fontFamily: 'DINNextLTArabic-Regular', lineHeight: 18, color: '#fff', textAlign: 'center' }}
messageStyle={{ fontFamily: 'DINNextLTArabic-Regular', lineHeight: 16, color: '#fff', textAlign: 'center' }}
imageStyle={{ display: 'none' }}
ref={ (ref) => Flash.setDropDown(ref) }
/>
</Provider>
)
}
export default ReactNavigator;
答案 0 :(得分:0)
根据react-navigation网站(https://reactnavigation.org/docs/en/navigating-without-navigation-prop.html)上的示例,您的route_name
应该为routeName
他们需要专门使用routeName
和params
键才能使用