关于componentWillMount生命周期的问题 react

我在父组件里面点击多次,为什么子组件只会触发一次componentWillMount,之后就再也没触发了,按理来说我click一次就会重新setState一次,完后子组件生命周期会重新开始重置的吧

如果我想子组件的componentWillMount每次都会触发,这个该怎么实现呢

//父组件 index.js
click = () => this.setState({bool:true});//默认false
render() {
  return (
    <Button type="primary" onClick={this.click}>click</Button>
    {this.state.bool?<Test />:''}
  )
}
//子组件 Test.js
componentWillMount() {
  console.log('...componentWillMount...')
}
render() {
  return <div>...Test...</div>
}
阅读 2.7k
2 个回答
//父组件 index.js
click = () => this.setState({bool:!this.state.bool});//默认false

点两下会重新加载一次,如果你点一次就要重新加载,就设个定时器 把他改回来

因为 this.state.bool 只有一次值变换,所以 <Test /> 在 this.state.bool 为 true 之后就一直存在渲染的上下文中,从来没有被移除过,也就更加没有被重新 mount 进来。

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