问题标签 [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.
reactjs - Redux - 调度异步操作时更改 URL
在我的 React/Redux 应用程序中,我有一些异步操作。假设用户getData
向服务器发起请求。立即发送 aGET_DATA_REQUEST
并且getData
AJAX 调用正在发送到服务器的途中。
在成功或失败时,相应地分派一个GET_DATA_SUCCESS
或GET_DATA_FAILURE
动作,并将数据呈现给 UI。
现在,我希望我的应用程序推送历史状态(使用react-router-redux
)作为对 AJAX 回调的反应。这意味着,成功后,用户将被“重定向”到另一个 URL(路由),显示依赖于新接收到的数据的不同模块。
我意识到在 reducer 中拥有这个功能是一个非常糟糕的主意,因为它不再是纯粹的(URL 更改是一个副作用)。
有什么想法吗?
谢谢
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')
谁能帮我.. ?真的很纠结这个。。
javascript - react-router 在每次转换时滚动到顶部
导航到另一个页面时出现问题,它的位置将保持与之前的页面相同。所以它不会自动滚动到顶部。我也试过window.scrollTo(0, 0)
在onChange
路由器上使用。我也曾经scrollBehavior
解决过这个问题,但是没有用。对此有什么建议吗?
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>
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(路由减速器)
javascript - React+Redux - 期望 reducer 是一个函数
我正在尝试在我的通用应用程序中实现 redux,但我在使用 redux 时遇到了一些问题。我有这个 configureStore 功能:
然后我的 rootReducer 文件看起来像这样:
问题是我得到了这个错误:期望减速器是一个函数。我在 StackOverflow 上搜索并搜索过(那里有一些类似的问题),但答案在我的情况下不起作用。
那么,我做错了什么?为什么?
谢谢。
reactjs - React 路由器路径验证和重定向
我正在使用react-router和react-router-redux来实现 SPA。我想实现这样的用户界面:
我有一个列表的主要思想,Entitnes
如果我单击 an Entity
,url
则从更改http://domain/entities
为http://domain/entities/id
,其中id
是 an并且加载了特定的 React 组件Entitiy
。id
为了执行导航,我使用push
方法 fromreact-router-redux
但我也可以输入url
路径。但我需要以某种方式验证url
参数。我想检查id
它的格式是否正确以及特定实体是否存在,如果不存在,我应该回滚url
到以前的状态,然后显示错误警报。
我想这是可能的,但我是一个非常初学者React
,所以我想听听你的任何建议。
提前致谢。
javascript - 如何使用js代码转发reactjs-router?
当你似乎需要在 reactjs 中转发时,我们通常会放置一个链接或按钮,然后消费者单击它,然后页面重新加载路由器的相应路径。现在,当我请求一个帖子并且响应状态为200时,我希望页面转到路由器的其他路径。它不能使用链接或按钮,reactjs可以使用代码来做到这一点吗?比如:CertainComponent.setPath(otherPath); 某些组件。转;我的英语很差,可能不清楚提供我想做的功能。谢谢!</p>
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 中呈现)
也许对某人来说很明显,我在这里缺少什么。如果您需要更多代码,请告诉我。
reactjs - React + Redux + Router - 我应该为所有页面/组件使用一个状态/存储吗?
我正在使用 React + Redux,在阅读了react-router-redux和redux-router以及Dan Abramov 的回答之后,我决定使用“vanilla”react-router(我不在乎时间旅行等)这点)。
剩下的唯一悬而未决的问题是如何处理不同路由的状态。在我的应用程序中,每个路由子树都可以是不同且独立的部分(尤其是当它变大时)。让一个商店处理所有路线/页面仍然是一种好习惯吗?我(至少)不应该为每个主要路径路径设置不同的存储/状态吗?
我认为路由应该是某种无状态和独立的,这意味着如果我直接访问我的一个链接,它应该可以工作,并且不会知道其他兄弟路由。我应该把它反映给我的商店吗?
编辑
经过一番思考,我想使用不同的减速器+“CombineReducers”可以解决问题。唯一需要我验证的是,以前的路线状态在导航时不会持续存在