例如,当我执行以下操作时,只要我调用.listen()
,就会调用回调:
let unlistener = ReactRouter.browserHistory.listen(route => {
// do something when the path changes
});
如何防止这种情况发生?或者,如何获取当前路由的路径,以便将路由参数与当前路由进行比较?
我不想让这个函数忽略第一次执行,因为这太黑客了。有时可能不会立即调用该函数。
如果使用 redux
,则可以使用 react-router-redux
(https://github.com/reactjs/react-router-redux)。设置它时,每次更改历史记录时都会调度一个LOCATION_CHANGE
操作。
添加化简器来处理LOCATION_CHANGE
的主要优点是,您确实在操作的有效负载中获取新路径,并且您在商店的state
中具有对当前路由的引用。