在反应路由器中解决查询更改的回调

时间:2015-11-12 12:34:22

标签: reactjs react-router

我正在寻找使用react-router和redux进行路由寻呼的解决方案。

如果仅查询更改,则onEnter挂钩中的React-router不会触发回调,Router.run方法已被弃用,所以我有点疑惑。除了手动订阅location.change或使用react的生命周期钩子(如willReceiveProps之外)还有其他事情要做吗?

2 个答案:

答案 0 :(得分:5)

根据评论,<Router>上唯一留给您的挂钩是onUpdate。您也可以通过自定义RoutingContext拦截查询参数,但我们目前不认为是公共API。

我们希望将来为此用例添加更好的解决方案,但所概述的方法是1.0.0版本中唯一可用的方法。

答案 1 :(得分:1)

对于使用v2.0 / v3.0的任何人,您可以使用路由的onChange挂钩来响应查询更改。

<Route
  component={...}
  path="..."
  onChange={(nextState, replace, callback) => {
    // Do something in response to a query change...
  }}
/>

https://github.com/ReactTraining/react-router/blob/master/docs/API.md#onchangeprevstate-nextstate-replace-callback