在以下情况下,当isLoading属性更新时,turnLogo()将立即触发:

class Logo extends Component {
    constructor(props) {
      super(props);

      };
    }

    componentDidUpdate() {
      if (this.props.isLoading) {
        this.rotateLogo();
      }

    }

...


但是,当尝试使用useEffect在功能组件中实现相同功能时,在更新isLoading和
激活rotateLogo()

const Logo = ({ isLoading }) => {

  useEffect(() => {
    if (isLoading) {
      rotateLogo();
    }
  }, [isLoading])

...

最佳答案

在这种情况下,您可能希望同步重新渲染,因此应使用useLayoutEffect而不是useEffecthttps://reactjs.org/docs/hooks-reference.html#uselayouteffect

10-07 14:08