react中路由参数的获取时机

react中,用了react-router,那么这时到的路由参数是在组件生命周期的哪个阶段可以获取到的?

下面有两个情景,

情景一:直接在浏览器地址栏输入https://segmentfault.com/ask,那么参数就是ask,那么这个ask作为路由参数可以在组件生命周期的哪个阶段获取的呢?

情景二:现在我在https://segmentfault.com,然后我browserHistory.push("ask"),这时路由就会跳转到https://segmentfault.com/ask,有匹配这个路径的组件就会加载,那么这种情况下的这个ask参数可以由组件的哪个生命周期获取呢?

因为在开发过程中发现是不一样的,有初步的结论,但是不太清楚为什么,也不知道自己想的对不对,请各位大神解答一下

阅读 5.3k
2 个回答

路由参数是作为props传入组件的,它像普通属性一样,在路由组件创建或重新渲染时传入组件。至于那个周期获取,看实际情况。要用作异步请求可在componentDidmount获取,要渲染出来可在render中获取,要在渲染前做检测可在render之前的生命周期里获取。

我一般在componentDidmount的时候去this.props.param里去取参数,然后拿到参数做后面的处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题