【问题标题】:Make react native navigator go back to previous screen让反应原生导航器返回上一个屏幕
【发布时间】:2021-03-08 02:26:10
【问题描述】:

我有一个标签导航器(有 3 个屏幕),然后每个都有 2 或 3 个屏幕。

TabNavigator => "A,B,C"
A stack => "1,2,3"

有时我会从 1 到 2,有时从 B 到 2(例如),我希望在按下后退按钮时导航到前一个屏幕,因此第一个示例为 1,第二个示例为 B。但现在只去了1。 这是我的导航堆栈:

const RaidsStack = createStackNavigator({
  Raids: { screen: RaidsScreen, }, 
  CreateRaid: { screen: CreateRaidScreen, }, 
  
})
const ChatsStack = createStackNavigator({
  Chats: { screen: ChatsScreen }, 
  ChatRoom: { screen: ChatRoomScreen, }, 
})
const SettingsStack = createStackNavigator({
  Settings: { screen: SettingsScreen },
  EditProfile: { screen: editProfileScreen }, 
  Start: { screen: StartScreen }, 
  
})
const StartStack = createStackNavigator({
  Tabs: { screen: SettingsScreen },
  Register: { screen: editProfileScreen }, 
  Start: { screen: StartScreen }, 
  
})
const TabNavigator = createBottomTabNavigator(
  {
    Raids: { screen: RaidsStack },
    Chats: { screen: ChatsStack },
    Settings: { screen: SettingsStack }
  },
  
  {
    tabBarPosition: "bottom",
    tabBarComponent: props => {

      return (
        <Footer>
          <FooterTab>
            <Button
              vertical
              active={props.navigation.state.index === 0}
              onPress={() => props.navigation.replace('Tabs', {}, NavigationActions.navigate({ routeName: 'RaidsStack' }))}>
              <Icon name="egg" />
              <Text>Raids</Text>
            </Button>
            <Button
              vertical
              active={props.navigation.state.index === 1}
              onPress={() => props.navigation.replace('Tabs', {}, NavigationActions.navigate({ routeName: 'Chats' }))}>
              <Icon name="mail" />
              <Text>Chats</Text>
            </Button>
            <Button
               vertical
              active={props.navigation.state.index === 2}
              onPress={() => props.navigation.replace('Tabs', {}, NavigationActions.navigate({ routeName: 'Settings' }))}>
              <Icon name="settings" />
              <Text>Settings</Text>
            </Button>
          </FooterTab>
        </Footer>
      );
    }
  }
)

const AppStack = createStackNavigator({
  Start: { screen: StartScreen },
  Register: { screen: RegisterScreen },
  Tabs: TabNavigator,
  Raids: { screen: RaidsScreen },
  Chats: { screen: ChatsScreen },
  Settings: { screen: SettingsScreen }
}, {
  headerMode: 'none',
})

怎么做?我是新来的反应和反应导航。

【问题讨论】:

    标签: react-native react-navigation react-native-navigation


    【解决方案1】:

    我建议查看文档https://reactnavigation.org/docs/stack-navigator/ 由于您还使用嵌套导航器,我建议您也查看此页面https://reactnavigation.org/docs/nesting-navigators/ 它正好告诉你带有标签的嵌套导航器的例子

    希望这些资料对你有所帮助!

    【讨论】:

    • 有没有更容易使用的导航器?
    • 我给你的文档是最容易使用的导航器。我建议在切换库之前先看看这个 docentantion。该导航器包含有关如何使用嵌套导航器(这是您在代码中尝试执行的操作)以及如何返回的示例。
    • 另一方面,这个库也像你一样使用堆栈库。
    猜你喜欢
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    相关资源
    最近更新 更多