繁体   English   中英

React Native - 嵌套屏幕之间的导航

[英]React Native - Navigation between nested screens

我已经阅读了有关在反应导航版本 5 的嵌套屏幕之间导航的文档。但是,我仍然遇到问题下面是我的 App.js 的代码

export default function App() {
  return (
    <NavigationContainer>
      <Provider store={store}>
          <Stack.Navigator initialRouteName="Login"
          headerMode={'none'}>
            <Stack.Screen name="Login" component={Login}></Stack.Screen>
            <Stack.Screen name="BottomTabs" component={BottomTabs}></Stack.Screen>
          </Stack.Navigator>
      </Provider> 
    </NavigationContainer>
  );
}

下面是“BottomTabs”组件的代码: -

export default function BottomTabs() {
    return (
        <Tab.Navigator initialRouteName="Profile">
            <Tab.Screen name="Profile"component={Profile}></Tab.Screen>
            <Tab.Screen name="Gobble" component={GobbleNavigator}></Tab.Screen>
            <Tab.Screen name="Matches" component={Matches}></Tab.Screen>
            <Tab.Screen name="Chats" component={ChatRoom}></Tab.Screen>
        </Tab.Navigator>
    )
}

在“个人资料”屏幕中,我有一个退出按钮,当单击该按钮时,将执行 function,我在其中调用props.navigation.navigate('BottomTabs', {screen: 'Login'})到 go 到登录页面。

我也尝试过其他方法,例如navigation.navigate('BottomTabs', {screen: 'App', params: {screen: 'Login'})navigation.navigate('Login')

但是,当我单击按钮时,什么也没有发生。 我在这里做错了什么?

每个屏幕都应该有一个名称。

假设登录屏幕被称为“登录”,那么如果您想单击一个按钮导航到登录屏幕,您应该能够这样做:

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

但是,如果您正在执行注销操作,您应该首先说删除您当前登录的数据 --- 在您导航到登录屏幕之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM