问题标签 [redux-router]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2812 浏览

javascript - redux-router pushState 不是函数

取自这个项目https://github.com/joshgeller/react-redux-jwt-auth-example#how-it-works,我有一个错误

它说Uncaught TypeError: (0 , _reduxRouter.pushState) is not a function

我没有按原样运行项目,我正在对自己的项目实施身份验证。我错过了什么吗?

0 投票
1 回答
60 浏览

reactjs - 错误在 reactredux 路由器上

我正在使用此代码创建路由 redux 路由器

我收到此错误

“未捕获的类型错误:无法读取未定义的属性‘getState’”

我正在尝试在应用程序 redux 上实现路由器 redux 谢谢

卡洛斯·维埃拉

0 投票
1 回答
1732 浏览

reactjs - componentWillReceiveProps 未在路由器参数更改时触发

我正在react-router-redux与 一起使用reduxreact-router并且react在这个 repo 中一切都运行良好:

https://github.com/justsayno/redux-react-introduction-code/tree/issue-branch

(查看分支issue-branch以重现我的问题)

我已经将react-router状态集成到我的 redux 状态中react-router-redux,并且可以成功地使用 mapStateToPropsemployeeId从道具中获取我需要的路由器参数,如下所示:

(以下内容来自该文件

在我的渲染函数中console.log(,employeeId 是 ${this.props.employeeId} ),当我路由到该组件并且参数发生变化时,它会发生变化。

但是由于我不明白的原因,当参数更改时这不会触发。

我想要实现的是对员工列表与单个员工的不同模拟 API 调用,当employeeId 参数发生更改时,我需要重新检索员工,否则我只能看到其中一名员工。我打算在我的componentWillReceiveProps函数中执行此操作,检查employeeId 的更改并启动一个操作(如果有的话):

我只是接近这个错误吗?

0 投票
2 回答
223 浏览

reactjs - ReactJS+Redux:如何处理依赖于另一个 props 的 props

我正在创建Graph一个React.Component. 当 时componentWillMount,此图将负责使用异步操作加载配置文件。配置文件还包含需要获取的查询信息。

现在,我将两个请求(配置 + 查询)链接起来,并将它们的结果存储在当前的 Redux 状态中。

我希望我的Graph组件同时connected包含两个变量。但是,在获取配置之前,我不知道查询名称。

我可能会遇到设计问题,但我想得到您的反馈。你会如何处理这种情况?

现在,我为组件创建了一个状态,但它需要与 redux 状态同步。

环境

  • 反应@15.3.1
  • redux@3.6.0
  • redux-thunk@2.1.0
0 投票
1 回答
178 浏览

redux-router - Redux 路由器 pushState 函数未触发 URL 更改

我已经按照这里的示例尝试为我的应用程序创建一个基本的身份验证区域,这是我原则上非常喜欢的解决方案。这是我的index.js

然后这是我AuthenticatedComponent处理重定向的高阶组件:

我已经玩这个很久了,我无法让组件重定向。在 Redux 开发工具中,我可以看到该@@reduxReactRouter/historyAPI操作已触发,但 URL 没有更改。所有相关的道具/状态等似乎也都到位了……我错过了什么吗?

谢谢

0 投票
1 回答
1270 浏览

reactjs - 在 react-router onEnter 钩子中懒惰地添加新的史诗是一种有效的做法吗?

将 redux-observable 与 react-router 一起使用时,在路由更改期间按照文档中的说明在 react-router 的 onEnter 挂钩中异步添加新史诗是否有意义

./epics/index.js

...路线/SomePath/index.js

Rxjs 和 redux-observable 非常新。这似乎可行,但想知道: 1. 在这种情况下,每次我们导航到 /some-path 时,epic3 会再次添加到 rootEpic 吗?2. 如果我想控制台记录哪些史诗已添加到 rootEpic 中,我该怎么做?


编辑以回应@JayPhelps

我可以要求澄清几点吗?

  1. registerEpic fn 效果很好。我一直在使用 .distinct() 运算符来解决重复的史诗注册问题,如下所示:

    export const epic$ = new BehaviorSubject(combineEpics(epic1, epic2)).distinct()

这是处理惰性史诗注册的同样有效/好的方法吗?如果不是,您能解释一下原因吗?

  1. 我正在使用具有 require.ensure 和 ES6 导入的 create-react-app(它们是不同的导入方式,对吗?),基本上,我复制粘贴了react-router 的巨大应用程序示例,其中包含require.ensure代码,但无处不在否则,我在文件顶部使用 import 语句。

因此,在顶部导入史诗和 registerEpic fn 似乎可行,而将路径放在 require.ensure 第一个参数中似乎也可行。如果我使用 require.ensure AND import 语句,它会变得混乱吗?如果我使用 require.ensure 来加载路由需要的所有内容,这是否意味着我删除了该路由组件的嵌套(无路由)组件内的所有导入语句?

  1. 关于在 'getComponent' fn 中注册史诗以进行异步加载 - 我认为实际上需要在此处进行同步加载,以便在注册史诗之前不会渲染路由的组件。如果用户尝试在路线上做一些事情,比如获取一些详细信息或提交表单,需要注册史诗,而史诗尚未注册,会发生什么?

  2. 在 react-router module.export 声明之外还有其他地方适合懒惰地注册史诗吗?由于我项目中的许多路由不需要登录,因此登录并不总是会触发路由更改。但是,在用户登录后应该注册一堆史诗。目前,我通过在我的 authReducer 中设置一个令牌变量以一种非常愚蠢且可能错误的方式来做这件事,但它所做的只是调用一个函数注册新的史诗:

    /li>

我想 loginEpic 将是注册史诗的更好地方,而不是 reducer。(我在 github 上找到了您的登录示例,因此它可能看起来很熟悉)。这是正确的,还是我完全偏离了基地?我知道 .concat() 是同步的,而且我知道 redux 是同步的——我不确定 registerEpics() 是否同步,但是使用 reducer 注册史诗似乎可以正常工作——这是否意味着 registerEpics 是同步的?还是仅仅意味着事情发展得如此之快以至于无关紧要?还是仅由于我对 import 语句以及 webpack 如何处理我必须研究更多的代码拆分存在一些基本的误解而起作用?

0 投票
2 回答
91 浏览

javascript - 登录成功后转发

我想在正确登录后转发用户。我使用 React-router 来解析路由器路径。

我尝试了各种不起作用的东西(见注释行)。

目前我正在尝试使用history.push(),但编译器说

history.push 不是一个函数。

我注意到"redux-router"没有使用 push 方法。相反,它可能会在 props 中查找不存在的方法。

我怎么做?

提前致谢。

0 投票
1 回答
3740 浏览

reactjs - Redux Router Uncaught TypeError: createHistory is not a function

Redux 路由器版本 ^2.1.2

反应路由器版本: "react-router": "^3.0.0",历史版本:"history": "^4.3.0"

重现步骤

它返回一个错误index.js:34416 Uncaught TypeError: createHistory is not a function(…)

有什么解决办法吗?


改成import { createHistory } from 'history';之后import createHistory from 'history/createBrowserHistory';

错误变成Uncaught TypeError: history.getCurrentLocation is not a function

想法?

0 投票
2 回答
475 浏览

google-app-engine - GAE web.xml 回退到 React-Router

我正在尝试使用 React、Redux 和 Redux-Router 在现有的 GAE 应用程序之上构建一个新的前端。我的问题是弄清楚如何让 GAE 总是回退到 Redux-Router 将负责路由的 html 页面。

现在,如果我转到“/”,应用程序运行良好,导航也很完美。当我刷新页面时,GAE 会启动并尝试查找路线。

如何将 GAE 配置为始终使用相同的 html?哦,只有当 url 不以 api/ 开头来提供我的数据时?

谢谢您的帮助

0 投票
2 回答
429 浏览

javascript - 如何将来自 redux-router 的推送方法添加到操作

我正在尝试push从操作中添加方法redux-router。当我启动操作时,推送接收有效负载中的对象,但不要更改页面。 在此处输入图像描述

动作/index.js

但是,如果我push不是从动作中初始化,而是直接在组件中初始化,它就可以正常工作。

我的组件/index.js