Reactjs 与ComponentDidMount类似的React钩子,不使用渲染计数

Reactjs 与ComponentDidMount类似的React钩子,不使用渲染计数,reactjs,react-hooks,Reactjs,React Hooks,有没有办法让钩子知道react何时完全完成渲染/挂载 不像 const mountedRef = useRef(false); useEffect(() => { if (mountedRef.current) { return } // sync to database }, [blogtitle]) 这只是跟踪调用渲染的时间 有没有办法使用钩子来真正等同于componentDidMount?您可以从useEffect返回一个函数。更新完成后,React将自动调用

有没有办法让钩子知道react何时完全完成渲染/挂载

不像

const mountedRef = useRef(false);
useEffect(() => {
  if (mountedRef.current) {
    return 
  }
  // sync to database
}, [blogtitle])
这只是跟踪调用渲染的时间


有没有办法使用钩子来真正等同于componentDidMount?

您可以从useEffect返回一个函数。更新完成后,React将自动调用返回的函数。你可以查看这篇文章:

注意下面的
博客标题的删除。此useEffect()相当于componentDidMount,因为它仅在初始渲染时运行

const mountedRef = useRef(false);
useEffect(() => {
  if (mountedRef.current) {
    return 
  }
  // sync to database
}, [])

“实际上相当于cDM”的措辞让我想问一下用例。钩子有不同的体系结构,用法也不同。选择“实际等价物”是一个糟糕的架构决策。如果您更新您的问题以显示您的用例,我可能会为您指出一个更好的方向,希望这对您有用我正在初始化(将对象从fetch分派到Redux)。当用户开始键入时,我会自动将博客保存到服务器。在获取过程中,blog#title为空。但是当它通过fetch返回时,它被发送到Redux。该更改:从fetch=>dispatch=>store接收的值为Null,从而导致对呈现作出反应。我不需要再次同步w DB。。仅当用户更改标题时。您是在谈论无限重渲染循环问题,还是担心会发生额外的1次渲染?