reactjs - 当调度某个 Redux 操作时,如何将用户重定向到某个路由?

标签 reactjs redux react-router react-redux

我有一个 React + Redux + React Router Web 应用程序,它使用 websockets 与后端服务器进行通信。

假设用户正在使用该应用程序,并且让计算机闲置了几个小时。这将导致他们的 session 过期。

因此,后端将向客户端发送一条消息:SESSION_EXPIRED

我希望能够将用户重定向到另一个路由 /login,以便用户可以在发生这种情况时再次登录。

但是我不知道如何进行重定向。我已经设置了操作和 reducer ,因此它们可以正确更新商店。我的商店中有一个名为 loggedIn: true|false 的 bool 值。

有什么方法可以让我在 loggedIn 状态更改为 false 时进行观察,然后将用户重定向到自动登录吗?

最佳答案

您可以有一个可以执行重定向的 redux 中间件。

所有中间件都将在每个操作中被调用并有权访问状态。 欲了解更多信息:http://redux.js.org/docs/advanced/Middleware.html

关于reactjs - 当调度某个 Redux 操作时,如何将用户重定向到某个路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954375/

相关文章:

css - 如何删除 Ant Design 菜单中的填充?

reactjs - Draft.js——获取 html 格式的编辑器内容

javascript - React-Redux 操作没有被触发

javascript - Storybook w/react-router - 你不应该在 <Router> 之外使用 <Link>

node.js - 使用Mongoose查询数据时如何显示Multer上传的图片

Javascript将对象值插入到具有相同键的另一个对象中

javascript - 无需订阅即可获取 ngrx 选择器的当前值

reactjs - 如何测试从mapDispatchToProps传递的函数(React/Redux/Enzyme/Jest)

javascript - 如何在 ReactJS 中分离两个函数?

javascript - 强制react-router应用程序向服务器发送URL请求