如何阻止React Router的`browserHistory.listen`立即调用回调?

时间:2016-06-10 03:30:39

标签: javascript reactjs react-router

例如,当我执行以下操作时,只要我调用.listen()就会调用回调函数:

let unlistener = ReactRouter.browserHistory.listen(route => {
    // do something when the path changes
});

如何防止这种情况发生?或者,如何获取当前路径的路径,以便将路由参数与当前路径进行比较?

我不想让这个功能只是忽略第一次执行,因为那太苛刻了。有时可能不会立即调用该函数。

1 个答案:

答案 0 :(得分:1)

如果您使用redux,则可以使用react-router-reduxhttps://github.com/reactjs/react-router-redux)。设置时,对历史记录的每次更改都会调度LOCATION_CHANGE操作。

添加reducer以处理LOCATION_CHANGE的主要优点是,您确实在操作的有效负载中获得了新路径,并且您在商店state中引用了当前路径。< / p>