react-navigation navigate.goBack()会一直返回到主屏幕

avwztpqn  于 2022-11-17  发布在  React
关注(0)|答案(2)|浏览(169)

所以我编写了一个简单的应用程序,带有react-navigation,我想编写如下代码:

- Home (Tab)
- Profile (Tab)
-- User info (Stack screen)
--- Edit user info (Stack screen) - (screen with input to edit name, email etc...)

当我点击“编辑信息”屏幕上的“保存”时,标题右侧有一个按钮完成,此按钮应导航回“用户信息”屏幕,您可以在其中看到更新的详细信息。

**但是!**一切正常,但是当我单击EditInfo屏幕上的Done时,它导航回Home!这是为什么?

多谢帮忙

ftf50wuq

ftf50wuq1#

你能不能把服务屏幕的代码放在你调用goBack函数的地方,这可能会有帮助。通常你只需要调用
您可能使用了错误的Navigator组件,或者您的要求不明确。基本上,您希望使用StackNavigator来实现所需的行为。
问题是,DrawerNavigator是用来建立一个抽屉菜单的。如果你从左边滑动,你会看到你的导航抽屉包含你所有的屏幕,你可以看到下面的图片

如果您在屏幕上添加一个按钮,如下图所示,您将看到菜单打开。

<Button title="MENU" onPress={() => this.props.navigation.navigate('DrawerOpen')} />

结论是,每当我们使用DrawerNavigator时,我们总是返回到初始路线,即我们定义为第一项或使用DrawerNavigator第二个参数的initialRouteName键的任何内容。
顾名思义,只有StackNavigator支持您希望实现的这种堆叠顺序。
您可以在DrawerNavigator的其中一个屏幕内 Package 新的StackNavigator。例如:

const AppNavigator = DrawerNavigator({
    drawer1: {
        screen: drawer1,
    }
});

const drawer1 = StackNavigator({
    one: { screen: one },
    two: { screen: two },
    three: { screen: three },
});
lhcgjxsq

lhcgjxsq2#

也许this answer能帮到你。
简而言之:可能需要在选项卡导航器中指定backBehaviour参数。

相关问题