问题标签 [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.
react-router - react-router:路由更改时如何触发渲染?
react-router
好的,所以我在github 问题跟踪器上提出了一个关于我<Link />
没有更新
的早期问题。https://github.com/reactjs/react-router/issues/3522
在尝试在一个简单的示例中重现之后,我意识到这似乎不是react-router
. 我的下一个潜在内疚要么是我复杂的设置,要么只是与react-router
&的混合react-router-redux
。
为了继续我的调查,我一直在寻求帮助,以了解如何在路由更改时触发 Link 渲染方法,因为道具似乎没有改变。(我只是在寻找能正确适应的activeStyle)
我实际上通过添加找到了解决方法
但我认为最好有一个干净的修复:P
javascript - react-router-redux:history.listen 不是函数
我有一个带有react-router-redux
. 使用 Webpack 一切都很好。但是,当我将 Bower 与https://cdnjs.cloudflare.com/ajax/libs/react-router-redux/4.0.5/ReactRouterRedux.js
(4.0.5 是最新版本,我有react-router
2.4.1)一起使用时,出现以下错误:
history.listen 不是函数
这是我的代码
它记录
历史 > {长度:2,状态:对象,滚动恢复:“自动”}
并且您可以看到该属性listen
丢失了。
但是,当我进入 的代码时syncHistoryWithStore
,返回的对象是一个具有很多属性的对象,包括监听。
对象 { v2_compatible : true, ..., 听}
所以,看起来好像以Object
某种方式转换为Symbol
( History
) 但我不知道为什么以及如何。
reactjs - react-router 路由组件中作为回调的操作
我想使用 redux 操作作为onChange
对 react-router 路由中事件的回调。我也在使用 react-router-redux。
就像是
动作在哪里fetchCompanies
。
更一般地说,我希望监听路由变化并最终与状态交互,这就是为什么使用动作对我来说似乎是最直接的选择。但是,我收到此错误:
还有另一种方法可以实现这一目标吗?尝试将动作作为回调传递给路由更改本身就很糟糕吗?如果没有,我怎样才能让它工作?
reactjs - React-Router:如何在路由转换之前等待异步操作
是否可以在特定路由上调用称为 a 的异步 redux 操作,thunk
并且在响应成功或失败之前不执行转换?
用例
我们需要从服务器加载数据并用初始值填写表格。在从服务器获取数据之前,这些初始值不存在。
像这样的一些语法会很棒:
redux - 调度动作使 react-router-redux 更改路由器道具
我正在目睹一种我无法理解的行为,而且这似乎不正确。
当我调度一个动作时,我的组件会重新渲染,因为this.props.location
(以及其他,如 params 或 routeParams)发生了变化,当我说“变化”时,我的意思是指针不同,但内部属性是相同的。
调度的动作不会以任何方式改变路由,只是 redux 存储中的一些数据(在它自己的挂载键上)。
因此,shouldComponentUpdate
(未覆盖)检测到更改并强制重新渲染。但是一点变化都没有!
这很烦人,因为我有一个 setInterval 例程,它每 30 秒分派一个动作来调用服务器以获取一些数据。然而,不关心这种状态变化的连接组件仍然会重新渲染。redux 面板显示只调度了这个动作,没有 LOCATION_CHANGE。
如果我拔掉 react-router-redux (删除使用syncHistoryWithStore
),这种行为就会停止。
这是预期的行为,还是我错过了什么?我不想覆盖shouldComponentUpdate
所有连接的组件。
您能否指出在组件中注入反应路由器道具的位置?
reactjs - 使用 react-router-redux,非路由表示组件应该如何获取位置?
有没有一种从非路由组件访问位置的好方法,其中MapStateToProp
'sownProps
没有填充位置?就我而言,我需要从路由组件向下几层的位置;避免大量分层参数传递是我们使用 Redux 的部分原因,所以我不倾向于将位置从路由组件向下传递到所有中间层。我最终routing
直接使用商店mapStateToProps
(在文档中警告),作为最好的错误选择。
该场景是一组常见的“框架”组件由父路由放置,并且它们需要根据上下文进行轻微更改。
reactjs - 在路由更改时更新 Redux 状态
我一直试图弄清楚这一点,我越来越困惑。
每次离开或更改路线时,我都想重置/更改 Redux 状态。每次路由更改时,我都会使用react-router-redux
调度动作history.listener
动作创建者:
减速器
最让我困惑的是,如果我刷新页面或在顶部导航中单击两次路由,状态会更新,但是即使操作和减速器触发,单个路由更改也不会影响 redux 状态(在控制台)。
我做错了什么,这里到底发生了什么?
reactjs - React-router-redux 需要两次点击链接来更新位置状态
我的应用程序存在问题,无法在任何地方找到解决方案。我使用react-router-redux
和syncHistoryWithStore
。
当我单击导航以使用链接更改路由时,新路由会加载,浏览器中的 URL 会更新,但是location
除非我单击链接两次,否则状态不会更新。
更新:我注意到它可能与 Chrome React DevTools 有关。如果我打开 React Devtools 并选择提供程序,然后一次打开一个组件树,location
状态会更新并且一切正常。但是,如果我使用搜索栏定位目标组件,location
状态将不再起作用,并且应用程序会中断。诡异的?!
有没有人遇到过类似的问题?知道如何解决这个问题吗?
reactjs - 获取反应组件中的当前路径
为了确定特定菜单项的样式,我试图在我的导航组件中获取当前路径。
我已经尝试了一些常见的嫌疑人,但没有得到任何结果。特别是我认为会通过 React 注入的属性不存在。
this.props.location
返回undefined
this.props.context
返回undefined
我用react 15
, redux 3.5
, react-router 2
,react-router-redux 4