在React Navgiation 3中,如何将屏幕从其他堆栈推入并弹出回到调用屏幕

时间:2019-04-29 16:21:35

标签: reactjs react-native react-navigation

我正在使用react-navigation3。我有以下路由器:

const StackA = createStackNavigator(
 {
   MainA: MainA,
   AddA: AddA,
 },
 {
   initialRouteName: 'MainA'
 }
); 

const StackB = createStackNavigator(
 {
   MainB: MainB,
   DetailsB: DetailsB,
 },
 {
   initialRouteName: 'MainB'
 }
); 

const TabNav = createBottomTabNavigator(
  {
     A: StackA,
     B: StackB
  }
)

我在DetailsB屏幕中,我想按AddA屏幕。根据文档,我可以使用NavigationActions和StackActions导航到StackA并按下AddA屏幕,如下所示:

        const navigateAction = NavigationActions.navigate({
        routeName: 'StackA',
        params: {},
        action: StackActions.push({
            routeName: 'AddA',
            params: {
                someParam: someData,
            }
        })
    });
    this.props.navigation.dispatch(navigateAction);

AddA屏幕上有一个“取消”按钮,我想弹出屏幕并返回到DetailsB屏幕。如果我在StackActions.pop()中使用AddA,它会弹出回到MainA屏幕。

有关如何实施此操作的任何指南?

0 个答案:

没有答案