使用来自React-Router-Redux的Push甚至使用路由器修复时不会调度操作

问题描述 投票:0回答:1

当使用最新版本的React-Router-Redux和最新版本的React-Router-Dom和React-Router时,Push调度在特定情况下不起作用。以下是详细信息:

版本:“react-redux”:“^ 5.0.7”,“react-router-dom”:“^ 4.2.2”,react-router“^ 4.2.0”,“react-router-redux”:“^ 5.0.0-alpha.9"

重现步骤:根据React-Router-Redux版本5 repo中的示例设置代码。用以下内容中指定的withRouter连接:https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/blocked-updates.md

预期行为在从组件调度推送操作时,调度操作并更改页面的URL。

实际行为Url已更改,但在redux-logger中未发现任何操作。手动更改URL并在URL栏中设置或使用网站上的导航栏导航时,操作会正确调度。

任何见解将不胜感激。

reactjs redux router
1个回答
2
投票

我弄清楚了这个bug的问题。问题是您必须在同一组件中定义store中使用的历史记录和<ConnectedRouter history={history}>中使用的历史记录。因此,如果您在另一个组件中定义商店,而不是定义ConnectedRouter的组件,则必须将ConnectedRouter组件中使用的历史记录传递到商店组件中。

我猜测历史记录略有不同,具体取决于您定义的组件,因此导致路由器出现同步问题。

© www.soinside.com 2019 - 2024. All rights reserved.