当前位置: 首页 > 知识库问答 >
问题:

传递值时的反应 Redux 重定向

姬自强
2023-03-14

我正在为一个应用程序使用React Redux React路由器。我的初始页面是登录屏幕,一旦身份验证成功,希望在传递从身份验证中检索到的令牌时重定向到另一个页面。我正在查看这个SO问题,但没有显示如何将值传递到新页面:React路由器重定向

我正在考虑采纳Dan的建议,将重定向粘贴到动作创建者中(成功登录),但只是不确定如何将令牌传递回去。这是我的动作创建者:

export const loginSucceeded = token => {
    browserHistory.push('/dashboard')
}

共有2个答案

巫马昆琦
2023-03-14

使用 react-router 4,您可以尝试以下操作:

import { Route, Redirect } from 'react-router-dom';

export const loginSucceeded = token => {
    <Redirect push to={{
        pathname: '/dashboard',
        state: { token: token }
    }}/>
}

稍后,可以从仪表板页面通过< code > this . props . location . state . token 访问此令牌。

关于这里的更多信息

微生恩
2023-03-14

我建议使用react-router-redux。它带有< code >推送和< code >替换操作,因此您可以在< code >登录成功操作创建器中< code >分派它们。这是一个更干净的方式来处理路线的变化,你会看到在redux开发工具适当的行动。在< code>localStorage中存储一个令牌是一个好主意

假设您使用redux thunk中间件:

export const loginSucceeded = token => {
  return dispatch => {
    localStorage.setItem('token', token);
    dispatch(push('/dashboard'));
  };
};
 类似资料:
  • 问题内容: 在flask中,我可以这样做: 并且如果foo.html包含,页面将会显示。但是,如果有一条通往foo的路线怎么办: 在这种情况下,如果我仍然希望这种逻辑发生,那么进入foo.html的唯一方法是通过: 因此,如何使该变量传递到路由,这样我不必在加载路由之前重写重写该路由计算的逻辑代码? 问题答案: 你可以将消息作为显式URL参数传递(正确编码),也可以在重定向之前将消息存储到(coo

  • 我是新的TypeScript。我想通过打字稿的接口来反应状态,然后呈现状态。但是我不知道如何传递接口值来反应状态。

  • 悬而未决...

  • 所以,我开始学习React与Redux和react-router。一个. net的大麻烦 我想使用对象查找给定url中的道具,因此可以执行以下操作: 我定义了这样一条路线: 组件正在正确的url上呈现,但我无法获得任何道具。 所有这些逻辑都不是在应用根中发生的,而是在这个渲染的组件中发生的: 我需要遵循哪些关键因素,这样才能起作用?我正在使用最新的react路由器v4。谢谢

  • 我在Submit上有一个表单,它必须路由到list.js。当我遇到以下错误时,如何路由到list.js以在单击“添加文章”按钮时显示所有文章 组件/form.js src/index 当我使用react-router dom时,我应该使用react-redux路由器吗?我需要安装一些插件还是withrouter。我不知道。有人能告诉我哪里出了问题吗?

  • 我在克服react路由器的问题时遇到困难。该场景是,我需要从状态父组件和路由向子路由传递一组道具 我想做的是传递its,传递its。然而,我能找到的唯一方法是通过这两个和,这意味着每个子路径都会获得每个子道具,无论其是否相关。目前这不是一个阻塞问题,但我可以看到,有一段时间我会使用同一组件的两个,这意味着propA上的键将被propB上的键覆盖。 这实际上是我所期望的方式。当我链接到我得到组件渲染

  • 问题内容: 我有一个待办事项列表,如果用户单击“完成”,希望将数组中该项目的状态设置为“完成”。 这是我的动作: 这是我的减速器: 我遇到的问题是新状态在所选项目上不再具有与该待办事项相关的文本,并且ID不再存在。这是因为我要覆盖状态并忽略以前的属性吗?我的对象项onload看起来像这样: 如您所见,我要做的就是将完成值设置为true。 问题答案: 您需要转换待办事项数组以更新适当的项目。Arra

  • 问题内容: 保持不变,尽管我在函数中调度了一个动作: 输出为NO_AUTH(的初始值) 减速器: 知道为什么吗? 问题答案: 您当前正在直接在未映射到的componentDidMount内部调度: 这应该做的工作: 现在,这将获得authState: