问题标签 [connected-react-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 投票
2 回答
2470 浏览

react-router - React Router props `location` / `match` 未使用 `ConnectedRouter` 更新

我已经按照文档设置了我的应用程序:

步骤1

第2步

我点击一个Link甚至dispatch(push('/new-url/withparam'))

但是,道具match location保留了以前的值或第一页的任何内容。

怎么了?

0 投票
1 回答
2432 浏览

reactjs - 在 react-redux connect() 中,connected-react-router push() 没有位置变化

调度在 react-redux connect() 的 mergeProps 参数中定义的推送动作会调度 redux 动作,但不会触发 url 页面更改。我还将 withRouter 包裹在 redux 容器周围,但似乎没有帮助。

我可以做些什么来触发实际的页面更新以及使用 create-react-router 包的 LOCATION_CNANGE redux 操作?此时,只有 connected-react-router 中间件和 redux 存储正在更新,但没有实际的页面更改。

0 投票
1 回答
4404 浏览

reactjs - 设置连接的 React 路由器

我正在尝试根据README 中的步骤设置 connected-react-router 。

我的 store.js 中有这个当前代码:

我尝试按照设置进行操作,但Uncaught TypeError: rootReducer is not a function浏览器中不断出现错误。

目前该文件如下所示:

0 投票
1 回答
1103 浏览

javascript - 不会触发 @@router/LOCATION_CHANGE 动作

单击 react-router<NavLink />组件时出现问题。目前,单击它时会导航到正确的页面,但在redux) 中没有触发任何操作。

历史对象更新。我可以说是因为后退/前进按预期工作(在 中触发动作redux-logger)。

这是剥离的代码:

当第一次加载和按下浏览器的后退/前进按钮时,redux 记录器中的路由发生了变化:

我到处寻找,无法确定是否需要进行自定义操作或使用连接的反应路由器。

帮助表示赞赏

0 投票
11 回答
66241 浏览

reactjs - 有没有办法用 React-Router v4+ 修改页面标题?

我正在寻找一种在 React-Router v4+ 更改位置时修改页面标题的方法。我曾经在 Redux 中侦听位置更改操作,并根据metaData对象检查该路由。

使用 React-Router v4+ 时,没有固定的路由列表。事实上,站点周围的各种组件都可以使用Route相同的路径字符串。这意味着我使用的旧方法将不再有效。

有没有一种方法可以通过在某些主要路线发生变化时调用操作来更新页面标题,或者是否有更好的方法来更新站点的元数据?

0 投票
2 回答
314 浏览

javascript - `redux-loop` 和 `connected-react-router` 兼容吗?

我使用以下博客文章中的示例代码制作了一个简单的反应应用程序,我仅将其作为引用。我对 javascript 生态系统还是陌生的,并且正在尝试将几个不熟悉的工具组合在一起(以便学习它们)。

https://medium.com/@notrab/getting-started-with-create-react-app-redux-react-router-redux-thunk-d6a19259f71f

相关地,我的store.js样子是这样的:

这似乎工作正常,我页面上的Link/Route触发器工作正常。请注意,installfromredux-loop被称为增强器(?)的一部分,这很好。我的减速器中没有任何loop调用,我只是将install命令作为增强器插入,希望能够添加一些。

这是我的主要reducer代码:

同样,这很好用。loop但是,如果我在减速器中插入任何位置,它就会死掉。根据文档,这是因为我们需要使用combineReducersfrom redux-loop。美好的。如果我将顶部的导入替换为import { combineReducers, } from 'redux-loop';(根本不改变我的减速器,还没有非标准的返回),那么我会在库代码中得到一些完全无意义的错误:

它持续了很多页,但问题似乎出在ConnectedRouter; 我认为这是因为combineReducersin将主减速器的响应类型更改为与调用redux-loop中的不兼容的内容connectRouter(history)(rootReducer)createStore

这是正确的问题吗?这是可以修复的吗?这两个库可以一起使用吗?

0 投票
2 回答
7147 浏览

reactjs - react-router 连接到 redux :与链接一起使用,但在调度推送时仅更改 URL

我正在尝试以编程方式推送 URL 以使用 react-router、redux 和 connected-react-router 进行导航

单击<Link />按钮时,它工作得很好,URL 正在改变,路线也在改变。

但是当使用 a 时dispatch(push(url)),URL 只会改变,内容不会更新

我在这里做了一个最小的例子。

任何帮助将不胜感激,

谢谢

0 投票
1 回答
1200 浏览

reactjs - 无法正确设置 Connected React Router

我正在尝试更新到 connected-react-router,同时更新我所有的 React、Redux 和 Router 版本。我在根减速器和商店创建方面遇到问题。

以前工作的减速器代码是......

而对于 index.ts 是:

现在我添加了connectRouter ...

它为...的路由器产生错误

类型“(reducer:Reducer)=> Reducer”不可分配给类型“Reducer,AnyAction>”。参数“reducer”和“state”的类型不兼容。类型 'Reducer<{ 路由器:RouterState; }, 任何动作> | undefined' 不可分配给类型 'Reducer<{ router: RouterState; },任何动作>'。类型 'undefined' 不能分配给类型 'Reducer<{ router: RouterState; },任何动作>'。

我不完全理解为什么之前不能传递状态和动作,但是通过添加历史参数,index.ts 现在要求传递三个参数,我不知道在这种情况下有什么可以传递的。如何更改它以使其正常工作?提前致谢

0 投票
1 回答
1915 浏览

react-router-v4 - redux-observable 史诗中使用的“connected-react-router”中的`push`不会更改 url 并呈现空白页面

push来自 redux-observable 史诗中使用的“connected-react-router”不会更改 url 并呈现空页面。state.router.location永远不会改变,所以我认为动作没有正确调度,但组件不再呈现 - 这是我无法弄清楚的变化。

该应用程序如下:

在减速器中:

在应用程序配置中:

在 RootContainer.js

在史诗中:

包.json

我没有像此示例中那样的任何热模块更换,但我认为它不相关。

更新:

我添加了史诗来收听:

似乎发送了以下操作:

​​它只是对 url 没有任何影响。

更新

同样使用 Link (react-router-dom) 直接导航到“new/path”在组件内部效果很好,所以路径是正确的。

0 投票
3 回答
6687 浏览

react-router-v4 - 使用connected-react-router在每次路由更改时更改的“关键”是什么?

当触发导航到路由的动作时,动作会触发一个新状态,该状态router.location.pathname根据浏览器的history.

另一个属性也发生了变化:router.location.key, 为一个新的随机字符串。

两种状态之间的差异,显示键如何随路径名变化。

即使路径名本身没有改变(从页面本身单击指向页面的链接),key仍然会更新。

两种状态之间的差异,显示只有键是如何变化的。

key财产的目的是什么?在哪些情况下,我希望我自己的状态key在非常动作调度时随机生成更新?为什么它不是一个简单递增的数字?