Reactjs 即使URL发生更改,路由器也不会呈现组件

Reactjs 即使URL发生更改,路由器也不会呈现组件,reactjs,react-router,axios,Reactjs,React Router,Axios,我在reactJS中使用JWT令牌进行身份验证,Django作为后端。当刷新令牌过期时,Axios被用作拦截器,它将页面的URL更改为/account/login。但是,react路由器不会呈现登录页面 以下是我的拦截器的代码: axios.js文件 import { createBrowserHistory } from 'history'; const history = createBrowserHistory(); axios.interceptors.response.use((re

我在reactJS中使用JWT令牌进行身份验证,Django作为后端。当刷新令牌过期时,Axios被用作拦截器,它将页面的URL更改为
/account/login
。但是,react路由器不会呈现登录页面

以下是我的拦截器的代码: axios.js文件

import { createBrowserHistory } from 'history';
const history = createBrowserHistory();

axios.interceptors.response.use((response) => {
   return response
}, function (error) {
   const originalRequest = error.config;

      if (error.response.status === 401 && originalRequest.url.includes('/api/token/refresh/')) {
          console.log('101')
          history.replace('/account/login/')
          store.dispatch(actionCreator.setAuthFalse());
           return Promise.reject(error);
       }

以下是我的路线代码:

在App.js中

<Suspense fallback={<Loader/>}>
      <BrowserRouter>
        <Fragment>
          <Navbar/>
          <Switch>
<Route exact path='/service/' component={AllServices}/>
<Route exact path='/article/' component={Article}/>
<Route exact path='/account/login/' component={LoginPage} />
         </Switch>
        </Fragment>
      </BrowserRouter>
     </Suspense>
const mapStateToProps = state => {
  return {
    accessToken: state.accessToken,
    refreshToken: state.refreshToken,
    expiresIn: state.expiresIn,
    isAuthenticated: state.isAuthenticated
  }
}

const mapDispatchToProps = dispatch => {
  return{
    auth_user_after_refresh: (refreshToken) => dispatch(authActions.getAnotherAccessToken(refreshToken)),
    logout: () => dispatch(authActions.logoutUser())
  }
}

export default withRouter(connect(mapStateToProps, mapDispatchToProps)(App));


常量mapStateToProps=状态=>{
返回{
accessToken:state.accessToken,
refreshToken:state.refreshToken,
expiresIn:state.expiresIn,
isAuthenticated:state.isAuthenticated
}
}
const mapDispatchToProps=调度=>{
返回{
刷新后对用户进行身份验证:(refreshToken)=>dispatch(authActions.getAnotherAccessToken(refreshToken)),
注销:()=>dispatch(authoctions.logoutUser())
}
}
使用路由器导出默认值(connect(mapStateToProps,mapDispatchToProps)(应用程序));

如何确保URL更改时组件呈现?

我们需要查看
活动的文件。我提供了app.js文件,其中包含所有组件。