当使用最新版本的React-Router-Redux和最新版本的React-Router-Dom和React-Router时,推送调度在特定情况下不起作用。以下是详细信息:
版本: “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中的示例设置代码。使用with {0}包装连接,如:https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/blocked-updates.md
中所述预期行为 从组件调度推送操作时,调度操作并更改页面的URL。
实际行为 Url已更改,但在redux-logger中未发现任何操作。手动更改网址并在网址栏中设置或使用网站上的导航栏进行导航时,操作会正确调度。
任何见解都将不胜感激。
答案 0 :(得分:2)
我弄清楚了这个bug的问题。问题是您必须在同一组件中定义store
中使用的历史记录和<ConnectedRouter history={history}>
中使用的历史记录。因此,如果您在另一个组件中定义商店,而不是定义ConnectedRouter的组件,则必须将ConnectedRouter组件中使用的历史记录传递到商店组件中。
我猜测历史记录略有不同,具体取决于您定义的组件,因此导致路由器出现同步问题。