我想在登录(欢迎)后用户导航到Home.我重置了历史记录,因此用户无法像这样返回:
const actionToDispatch = NavigationActions.reset({ index: 0,actions: [NavigationActions.navigate({ routeName: 'Home' })] }); this.props.navigation.dispatch(actionToDispatch);
这工作正常.按下注销后,用户应该返回欢迎,但它不起作用.这就是我在做什么:
const resetAction = NavigationActions.reset({ index: 0,actions: [ NavigationActions.navigate({ routeName: 'Welcome' }),] }); this.props.navigation.dispatch(resetAction);
该错误表示没有“欢迎”的路线.必须是“主要”,“隐私”,“条款”之一,它们是主页中某个标签的路线.见下文:
const AppStack = StackNavigator({ Welcome: { screen: Welcome },Home: { screen: Tabs } },{ initialRouteName: this.state.isLoggedIn ? 'Home' : 'Welcome',headerMode: 'none' } ); export const ProfileStack = StackNavigator({ Profile: { screen: Profile,},}); export const SettingsStack = StackNavigator({ Settings: { screen: Settings,{ }); export const InfoStack = StackNavigator({ Main: { screen: Main,Privacy: { screen: Privacy },Terms: { screen: Terms } }); const routeConfiguration = { Profile: { screen: ProfileStack },Settings: { screen: SettingsStack },Info: { screen: InfoStack } }; const tabBarConfiguration = { tabBarOptions: { activeTintColor: 'white',inactiveTintColor: 'lightgray',labelStyle: { fontSize: Normalize(10),fontFamily: Fonts.book },style: { backgroundColor: Colors.greenLightGradient,borderTopWidth: 1,borderTopColor: Colors.tabGreenLine },} }; export const Tabs = TabNavigator(routeConfiguration,tabBarConfiguration);
我在这里找到了解决方案:
https://github.com/react-community/react-navigation/pull/789.
const resetAction = NavigationActions.reset({ index: 0,],key: null }); this.props.navigation.dispatch(resetAction);
key:null是重要的部分.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。