Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 如何在react导航中获取上一条路线?_React Native_React Navigation - Fatal编程技术网

React native 如何在react导航中获取上一条路线?

React native 如何在react导航中获取上一条路线?,react-native,react-navigation,React Native,React Navigation,我是react本机应用程序中的用户react导航。登录后,我导航到主屏幕,从那里我要注销,我应该导航到上一个屏幕说登录。但在导航道具里面,我找不到任何方法在不使用goBack功能的情况下重新登录屏幕。我的导航有点乱,请仔细查看我的导航 这是我的导航员 从“React”导入React; 从“react native”导入{View,Text}; //领航员 从“反应导航”导入{DrawerNavigator、StackNavigator、TabNavigator} //抽屉屏风 从“../../

我是react本机应用程序中的用户react导航。登录后,我导航到主屏幕,从那里我要注销,我应该导航到上一个屏幕说登录。但在导航道具里面,我找不到任何方法在不使用goBack功能的情况下重新登录屏幕。我的导航有点乱,请仔细查看我的导航

这是我的导航员

从“React”导入React; 从“react native”导入{View,Text}; //领航员 从“反应导航”导入{DrawerNavigator、StackNavigator、TabNavigator} //抽屉屏风 从“../../screens/Welcome”导入欢迎; 从“../../screens/Profile”导入配置文件; //选项卡屏幕 从“../../screens/Home”导入主页; 从“../../screens/Message”导入消息; //塔布纳夫 常量routeConfigs={ 主页:{ 屏幕:主页, 导航选项:{ 标题:“家” } }, 信息:{ 屏幕:消息, }, } 常量选项卡导航配置={ //tabBarComponent:tabBarComponent, Tabbar位置:“顶部”, 懒惰:是的, 选项卡选项:{ activeTintColor:'黄色', 颜色:“灰色”, 风格:{ 背景颜色:“8e24aa”, }, activeBackgroundColor:'绿色', }, 标题:“屏幕” } export const TabNav=TabNavigatorrouteConfigs,tabNavigatorConfig; //使用堆栈获取选项卡栏上方的标题 export const StackNav=StackNavigator{TabNav:{screen:TabNav}}; //派洛纳夫 导出常数pawernav=pawernavigator { 欢迎:{屏幕:欢迎}, 配置文件:{screen:Profile}, StackNav:{screen:StackNav},//堆栈导航器以获取每个选项卡上的标题 }, { initialRouteName:“欢迎”, 抽屉背景颜色:“98eef3”, } ; 您可以尝试Navigation.reset,而不是使用goBack


使用开关导航器-它是一个检查用户当前状态并将其转发到相应屏幕的屏幕

如果用户登录,则向用户显示主屏幕 如果用户注销,则向用户显示欢迎屏幕 如果用户未经验证到达,则显示用户欢迎屏幕 更新nav文件中的initialRouteName并添加AuthLoadingScreen

从“React”导入React; 从“react native”导入{View,Text}; //领航员 从“反应导航”导入{DrawerNavigator、StackNavigator、TabNavigator} //抽屉屏风 从“../../screens/Welcome”导入欢迎; 从“../../screens/Profile”导入配置文件; //选项卡屏幕 从“../../screens/Home”导入主页; 从“../../screens/Message”导入消息; 从“../../AuthLoading”导入AuthLoadingScreen; //塔布纳夫 常量routeConfigs={ 主页:{ 屏幕:主页, 导航选项:{ 标题:“家” } }, 信息:{ 屏幕:消息, }, } 常量选项卡导航配置={ //tabBarComponent:tabBarComponent, Tabbar位置:“顶部”, 懒惰:是的, 选项卡选项:{ activeTintColor:'黄色', 颜色:“灰色”, 风格:{ 背景颜色:“8e24aa”, }, activeBackgroundColor:'绿色', }, 标题:“屏幕” } export const TabNav=TabNavigatorrouteConfigs,tabNavigatorConfig; //使用堆栈获取选项卡栏上方的标题 export const StackNav=StackNavigator{TabNav:{screen:TabNav}}; //派洛纳夫 导出常数pawernav=pawernavigator { 欢迎:{屏幕:欢迎}, 配置文件:{screen:Profile}, Authloading:{屏幕:AuthLoadingScreen} StackNav:{screen:StackNav},//堆栈导航器以获取每个选项卡上的标题 }, { initialRouteName:“AuthLoading”, 抽屉背景颜色:“98eef3”, }
;我尝试在主屏幕上创建一个按钮按下事件的函数,但什么也没有发生。控制台上没有错误。根据你的说法,这里会发生什么?请解释。它应该通过在routes数组的位置0将Welcome设置为初始路线来重置导航。希望这是有意义的。
    import { NavigationActions } from "react-navigation";
    ...
    export const logOut = navigation => {
      NavigationActions.reset({
        index: 0,
        actions: [NavigationActions.navigate({ routeName: "Welcome" })]
      })
    }