react native怎么页面跳转

发布于 2022-09-12 22:40:43 字数 1121 浏览 15 评论 0

app.js

...
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import Test from './pages/test'
import Login from './pages/login'
...

class Nav extends Component{
  render(){
      return(
          <NavigationContainer>
            <Stack.Navigator initialRouteName="Test" headerMode="none">
              <Stack.Screen name="Test" component={Test} />
              <Stack.Screen name="Login" component={Login} />
              ...
            </Stack.Navigator>
          </NavigationContainer>

      )
    }
}

我有一个专门负责请求的request.js

request.js

import axios from 'axios';
const instance = axios.create({
  baseURL: 'http://192.168.10.10:51000',
});
instance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if(error.response.status === 401){
      /*
        *** 跳转页面
      */
    }
    return Promise.reject(error);
  },
);

我想当服务器返回401状态码的时候跳转到Login页面,该如何操作?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

断桥再见 2022-09-19 22:40:43

新建一个文件,比如:RootNavigation.js,假设现在这三个文件处于同一级:

import React from 'react';

export const navigationRef = React.createRef();

export function navigate(name, params) {
    navigationRef.current?.navigate(name, params);
}

app.js

import { navigationRef } from './RootNavigation';

// ...

class Nav extends Component{
  render(){
      return(
          <NavigationContainer ref={navigationRef}>
            
          </NavigationContainer>

      )
    }
}

request.js

import * as RootNavigation from './RootNavigation';

// ...
if(error.response.status === 401){
    RootNavigation.navigate('Login');
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文