我有一个堆栈导航器,定义如下
const navigator=StackNavigator(
{
HomeScreen:{screen:Home},
newUserScreen1:{screen:newUser1},
newUserScreen2:{screen:newUser2},
},
routeOptions
);
这就是定义初始状态的方式
initialState=Navigator.router.getStateForAction(Navigator.router.getActionForPathAndParams('HomeScreen');
我可以从家里转到newUserScreenOne,从newUserScreen1调用navigation.back()
会将我带回家,但是当我从newUserScreen1转到newUserScreen2时,呼叫navigation.back()
会将我带回HomeScreen。我的理解是,屏幕在堆栈导航器中堆叠在一起,因此从newUserScreen2调用back()
应该显示newUserScreen1。我错过了什么吗?任何帮助将不胜感激。
由于问题发生在从Home > Screen1 > Screen2
,您应该深入了解如何导航到每个。你在做类似的事情吗...
从家里:
this.props.navigation.navigate('newUserScreen1', {name: 'New User'});
从屏幕 1:
this.props.navigation.navigate('newUserScreen2', {name: 'New User'});
从屏幕 2:
this.props.navigation.goBack(null);
如果您如上所述导航,我认为它应该适合您。
请注意,您还可以指定要"goBack"的特定键,以便更好地控制返回哪个屏幕。有关更多信息,请参阅 React 导航文档 |goBack()