React Hooks:渲染是否总是在setState + setTimeout之后完成?

时间:2020-11-10 17:39:26

标签: reactjs react-hooks

免责声明:我不认为以下方法是一种好的做法。我可能或必须改用useEffect,但我仍然想评估现有代码的正确性。

在挂钩和功能组件的上下文中,以下假设是否正确?

{
    setState(newValue);
    setTimeout(() => {
       //Here code expects that re-rendering of all components affected by changing state has been completed.
    }, 0);
}

我可以确定在setTimeout之后重新渲染已经完成还是不能保证?

  1. 这个假设对当前的React版本是否正确?如果否,是否有特定行为打破它?

  2. 它会受到即将到来的React更改的影响吗?

1 个答案:

答案 0 :(得分:0)

不能保证。为了确保您的状态已更改,您将需要像这样使用useEffect

useEffect(() => {
   // do something now that state has changed
}, [state])