我想在登录(欢迎)后用户导航到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.
原文链接:https://www.f2er.com/react/301268.htmlconst resetAction = NavigationActions.reset({ index: 0,],key: null }); this.props.navigation.dispatch(resetAction);
key:null是重要的部分.