以编程方式将用户发送到react-redux应用程序中的登录页面

时间:2018-07-20 16:30:05

标签: reactjs redux react-router react-redux

我正在使用带有redux和react-connected-router的react.js来构建前端应用程序。

身份验证流程如下:

  • 正在显示登录页面
  • 登录成功,令牌已保存到redux存储区
  • 如果用户出于任何原因注销,令牌将从商店中删除
  • 如果商店中没有令牌,则用户应该看到登录页面

我知道我应该使用{push} from 'connected-react-router'将用户推送到/login

但是,似乎不能在store.subscribe()的子组件中使用<Provider store={store}>

不幸的是,我只能在push()的子级中使用<ConnectedRouter history={history}>,该子级本身就是<Provider store={store}>的子级

因此,我的问题是:如何在我的应用程序中以及在何处检测令牌的删除并重定向到/login

1 个答案:

答案 0 :(得分:0)

我现在正在使用下面的方法,我订阅apiKeyrouter状态,并在需要时使用它们/login将它们重定向到react-router }组件。

所有操作都在路由组件中完成,该路由组件是上述组件<Redirect\><ConnectedRouter history={history}>的子组件。

因此,现在需要直接使用<Provider store={store}>。同样,store.subscribe()push组件取代。

<Redirect\>