首页 > 解决方案 > React 不会按预期创建新的嵌套组件

问题描述

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

所以我做类似的事情:

class mainComponent{
  state={
    mypage:null
  }

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

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

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

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

相反,到达只是呼吁componentDidUpdate他们。

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

标签: reactjs

解决方案


React 不会在不需要时重新创建组件——它是优化的一部分,也是 react 工作的一般方式。

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

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


推荐阅读