关于react-router 父组件包裹withRouter可以触发子组件的 componentWillReceiveProps

@ckinmind 2019-05-14 09:50:07发表于 ckinmind/ReactCollect 重要问题遗留

问题描述

  1. 有两个路由,指向同一个组件,类似/detail/detail/:id
  2. 这两个路由的切换是单页形式的
  3. 指向的这个组件包含有一个父子组件,我想在路由切换的时候触发子组件的componentWillReceiveProps,没有成功
  4. 但是如果我此时将父组件包裹一个withRouter,子组件就能触发componentWillReceiveProps
  5. 子组件已经包裹withRouter

评论:

  1. 本来我的思路是想在子组件触发componentWillReceiveProps时来处理因为路由切换而需要做的状态清理,但是路由切换的时候居然没有触发,觉得很神奇
  2. 然后,我在其父组件加了componentWillReceiveProps,路由切换时父组件触发了该方法,所以在父组件去做因为路由切换而带来的状态清理,然后我又心血来潮去掉了componentWillReceiveProps,只讲父组件包裹了withRouter,结果子组件又能在路由切换时触发componentWillReceiveProps了