如何从 Axios 拦截器返回登录页面?

noo*_*bie 3 reactjs react-redux axios

我正在使用axios来发出 API 请求。我已经实现了一个集中式拦截器,所有组件都使用它来获取数据。
所有组件都使用此拦截器包含token在请求标头中,然后发送所有 api 请求。
现在,如果响应错误,我想重定向到登录页面。为此,我尝试在Redux storename中设置一个标志isTokenValid。想法是我将设置 asubscriber到storeinApp.js或index.js,一旦标志设置为false我将重定向用户到登录页面。
问题是我无法访问通过使用传递的任何mapDispatchToProps函数this.props.invalidToken()。

  • 如何解决这个问题?
  • 有没有更好的方法

小智 5

您可以使用它作为快速修复

if(error.response?.status === 401){
          localStorage.clear()
          window.location.href = "/login";
}
Run Code Online (Sandbox Code Playgroud)