当使用最新版本的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栏中设置或使用网站上的导航栏导航时,操作会正确调度。
任何见解将不胜感激。
我弄清楚了这个bug的问题。问题是您必须在同一组件中定义store
中使用的历史记录和<ConnectedRouter history={history}>
中使用的历史记录。因此,如果您在另一个组件中定义商店,而不是定义ConnectedRouter的组件,则必须将ConnectedRouter组件中使用的历史记录传递到商店组件中。
我猜测历史记录略有不同,具体取决于您定义的组件,因此导致路由器出现同步问题。