React不会按预期创建新的嵌套组件

时间:2018-11-21 19:55:46

标签: reactjs

在我的应用程序中,我有一个页面更改机制,该机制使用父组件状态的属性之一。

所以我做类似的事情:

class mainComponent{
  state={
    mypage:null
  }

  onclickhandler(page){
    this.setState({mypage:page});
  }

  render(){
    return <div>{page}</div>
  };
}

在“页面”属性中,我具有各种输入字段和其他组件。

当我更改页面时,所有输入都会更新为新值。但是,永远不会重新创建我的自定义嵌套组件。

相反,您只需致电componentDidUpdate就可以了。

有没有办法强迫它以某种方式构造一个新的嵌套组件?

1 个答案:

答案 0 :(得分:1)

在不需要时,React不会重新创建组件-它是优化的一部分,也是一般反应方式的一部分。

当存在“新”,“预期”组件(相同类型,相同或没有key id)时,它仅接收更新的道具。

有时更新道具不会强制重新渲染(保证状态更新)。 PureComponent较浅地比较道具,您可以检查shouldComponentUpdate(应返回true以强制渲染)。