小智 8

您可以 使用 refs 和效果挂钩的组合创建与componentWillUpdate相同的效果。

文档说 componentWillUpdate,每次更新时都会调用,发生。它不会在初始渲染时调用。

现在使用useRef钩子,返回对象在应用程序的完整生命周期中持久化。

const isFirstRender = React.useRef(true);
  React.useEffect(() => {
    if (isFirstRender.current) {
      isFirstRender.current = false;
      return;
    }
  /*business logic for component did update*/
      
  });
Run Code Online (Sandbox Code Playgroud)

  • 但这里它仍然在渲染后运行。不在它之前。 (2认同)
  • @hasan你是对的,上面的解决方案是针对componentDidUpdate的。 (2认同)

小智 -1

// similar to componentWillUpdate
useMemo(()=>{
    doSomething() 
}, [dep1, dep2])
Run Code Online (Sandbox Code Playgroud)