首页 > 解决方案 > 在对切换道具做出反应时需要对 getDerivedStateFromProps 进行一些澄清

问题描述

在下面的情况下,如果启用了某些模式,我需要更新状态,无条件地将 props.isScaffoldingMode 复制到状态是否有任何性能影响?

我想知道,是否应该在这种情况下使用 didUpdate 或仅在道具更改时才复制道具。

我不确定 getDerivedStateFromProps 是否会导致完全重新渲染,就像在这种情况下在 didUpdate 中设置状态一样。

感谢您的时间。

  static getDerivedStateFromProps(nextProps, prevState) {
    let newState = { prevIsScaffoldingMode: nextProps.isScaffoldingMode };
   
    if (nextProps.isScaffoldingMode && !prevState.prevIsScaffoldingMode) {
      const scaffoldingState = StandardItemComponent.prepareScaffoldingMode(nextProps);
      newState = { ...newState, ...scaffoldingState };
    }
      return newState;
    }

标签: javascriptreactjs

解决方案


推荐阅读