问题标签 [react-router-redux]

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 回答
6800 浏览

reactjs - Redux - 调度异步操作时更改 URL

在我的 React/Redux 应用程序中,我有一些异步操作。假设用户getData向服务器发起请求。立即发送 aGET_DATA_REQUEST并且getDataAJAX 调用正在发送到服务器的途中。

在成功或失败时,相应地分派一个GET_DATA_SUCCESSGET_DATA_FAILURE动作,并将数据呈现给 UI。

现在,我希望我的应用程序推送历史状态(使用react-router-redux)作为对 AJAX 回调的反应。这意味着,成功后,用户将被“重定向”到另一个 URL(路由),显示依赖于新接收到的数据的不同模块。

我意识到在 reducer 中拥有这个功能是一个非常糟糕的主意,因为它不再是纯粹的(URL 更改是一个副作用)。

有什么想法吗?

谢谢

0 投票
1 回答
935 浏览

reactjs - redux 状态的历史记录不可用,但在反应组件上可用

我的index.js样子:

我的Root.js样子:

configureStore.js的就像:

routes.js

我的LoginView组件就像:

我很困惑history。在我的组件中,我得到history了道具。就像我在组件this.props.history中所做的那样。console.log(this.props.history)

但在我的actions我无法得到history任何方式..

我的行为是这样的:

在这里我可以得到getState()但不是history

如果我想redirect怎么办?我想要history这样我可以像这样重定向它:

history.pushState(null, '/dashboard')

谁能帮我.. ?真的很纠结这个。。

0 投票
32 回答
166114 浏览

javascript - react-router 在每次转换时滚动到顶部

导航到另一个页面时出现问题,它的位置将保持与之前的页面相同。所以它不会自动滚动到顶部。我也试过window.scrollTo(0, 0)onChange路由器上使用。我也曾经scrollBehavior解决过这个问题,但是没有用。对此有什么建议吗?

0 投票
1 回答
70 浏览

reactjs - 如何最优雅地处理超链接上的点击

我想要的是呈现这样的 HTML <a href="/page/my-cool-slug">My cool Slug</a>

这意味着有人可以右键单击该链接并在新选项卡中打开。这将绕过 react-router 提供的花哨的 pushState 东西。

但是,如果有人经常点击,我需要更新 redux 来说明新的 slug 是什么(或分页页面或其他)并调用browserHistory.push(...).

必须有一种更简单方便的方法。几乎所有这些都没有乱七八糟的东西。这是我的应用程序的样子:

另外,我尝试event.target在事件处理程序中使用来获取a.href属性,但是因为<a>标签包含<span>元素,所以我在元素内单击event.target的标签。<span><a>

0 投票
1 回答
2010 浏览

javascript - 反应路由器 Redux 不可变

使用这个样板已经有一段时间了,并且一直使用普通的 JS 对象作为存储/状态,直到我开始随机获得一些奇怪的突变,所以决定切换到 Immutable.js。目前我正在尝试在我的代码中实现redux-immutable 。我对 react-router-redux 和 redux-immutable 有一些问题;不幸的是,我不太了解这些库的“幕后”,因此在调试时遇到了很多麻烦。我已按照 redux-immutable README 中的说明进行操作。

在我的 index.js 文件中出现此错误。

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

index.js

configureStore.js

rootReducer.js

routing.js(路由减速器)

0 投票
2 回答
2088 浏览

javascript - React+Redux - 期望 reducer 是一个函数

我正在尝试在我的通用应用程序中实现 redux,但我在使用 redux 时遇到了一些问题。我有这个 configureStore 功能:

然后我的 rootReducer 文件看起来像这样:

问题是我得到了这个错误:期望减速器是一个函数。我在 StackOverflow 上搜索并搜索过(那里有一些类似的问题),但答案在我的情况下不起作用。

那么,我做错了什么?为什么?

谢谢。

0 投票
2 回答
8854 浏览

reactjs - React 路由器路径验证和重定向

我正在使用react-routerreact-router-redux来实现 SPA。我想实现这样的用户界面:

简单的 UI 架构

我有一个列表的主要思想,Entitnes如果我单击 an Entityurl则从更改http://domain/entitieshttp://domain/entities/id,其中id是 an并且加载了特定的 React 组件Entitiyid

为了执行导航,我使用push方法 fromreact-router-redux但我也可以输入url路径。但我需要以某种方式验证url参数。我想检查id它的格式是否正确以及特定实体是否存在,如果不存在,我应该回滚url到以前的状态,然后显示错误警报。

我想这是可能的,但我是一个非常初学者React,所以我想听听你的任何建议。

提前致谢。

0 投票
2 回答
43 浏览

javascript - 如何使用js代码转发reactjs-router?

当你似乎需要在 reactjs 中转发时,我们通常会放置一个链接或按钮,然后消费者单击它,然后页面重新加载路由器的相应路径。现在,当我请求一个帖子并且响应状态为200时,我希望页面转到路由器的其他路径。它不能使用链接或按钮,reactjs可以使用代码来做到这一点吗?比如:CertainComponent.setPath(otherPath); 某些组件。转;我的英语很差,可能不清楚提供我想做的功能。谢谢!</p>

0 投票
2 回答
531 浏览

javascript - react-router(-redux) 不匹配路由

我坚持使用 react、redux、react-router 和 react-redux-router 绑定创建单页应用程序。

路由http://localhost:3001/register根本不被路由器匹配,并Cannot GET /register返回给浏览器,因为服务器显然不知道路由。我对 react-redux 堆栈相对较新,可能缺少一些非常基本的东西。

编辑:IndexRoute 正在工作并在 App-Compontent 中显示 Home-Component。

Edit2:我没有使用服务器端渲染,而是使用 webpack-dev-server 进行开发。

但到目前为止,这里是相关的代码片段:

entry.js

减速器.js

路由.js

Navigation.jsx(在 App.jsx 中呈现)

也许对某人来说很明显,我在这里缺少什么。如果您需要更多代码,请告诉我。

0 投票
1 回答
1559 浏览

reactjs - React + Redux + Router - 我应该为所有页面/组件使用一个状态/存储吗?

我正在使用 React + Redux,在阅读了react-router-reduxredux-router以及Dan Abramov 的回答之后,我决定使用“vanilla”react-router(我不在乎时间旅行等)这点)。

剩下的唯一悬而未决的问题是如何处理不同路由的状态。在我的应用程序中,每个路由子树都可以是不同且独立的部分(尤其是当它变大时)。让一个商店处理所有路线/页面仍然是一种好习惯吗?我(至少)不应该为每个主要路径路径设置不同的存储/状态吗?

我认为路由应该是某种无状态和独立的,这意味着如果我直接访问我的一个链接,它应该可以工作,并且不会知道其他兄弟路由。我应该把它反映给我的商店吗?

编辑

经过一番思考,我想使用不同的减速器+“CombineReducers”可以解决问题。唯一需要我验证的是,以前的路线状态在导航时不会持续存在