有没有办法回到不在同一stackNavigator中的屏幕?

时间:2020-06-24 18:17:13

标签: reactjs react-native react-navigation

我有两个屏幕:UserProfileEventEdit。两者都在不同的stackNavigators中

const ProfileDrawer = createDrawerNavigator(
  {
    Profile: UserProfile,
    ProfileEdit: UserProfileEdit,
    ProfilePreferences: UserProfilePreferences,
    ProfilePrivacy: UserProfilePrivacy,
    ProfileSupport: UserProfileSupport
  }
);

const EventStack = createStackNavigator(
  {
    Events: Events,
    EventEdit: EventEdit,
    NewEvent: NewEvent
  },
  {
    initialRouteName: 'Events',
    defaultNavigationOptions: {
      headerShown: false
    }
  }
);

我想做的是从EventEdit进入UserProfile屏幕,然​​后回到UserProfile。问题是我尝试使用navigation.goBack();,但是将我发送到Events屏幕,而不是UserProfile。 另外,我尝试将EventEdit放入ProfileDrawer堆栈中,但是由于用户在执行此方法时可以有多个事件,因此它只会将我发送到我选择的第一个事件,但我不会我不会参加其他任何活动。

此外,我忘了提到用户可以从多个屏幕访问EventEdit,有时这些屏幕在其他堆栈导航器中,例如此处的情况。

我的react-nativagion版本是"^4.2.2"

我该如何实现?

1 个答案:

答案 0 :(得分:0)

您可以制作一个TopLevelNavigator并访问这些从任何堆栈到任何其他堆栈的路由。

https://reactnavigation.org/docs/4.x/navigating-without-navigation-prop