reactjs - React Hooks:渲染总是在 setState + setTimeout 之后完成吗?
问题描述
免责声明:我不认为以下方法是一种好的做法。可能我可能或必须使用useEffect
,但我仍然想评估现有代码的正确性。
在钩子和功能组件的上下文中,以下假设是否正确?
{
setState(newValue);
setTimeout(() => {
//Here code expects that re-rendering of all components affected by changing state has been completed.
}, 0);
}
我可以确定重新渲染已经完成setTimeout
还是不能保证?
这个假设对于当前的 React 版本是否正确?如果不是,是否有特定的行为破坏它?
它会受到即将到来的 React 更改的影响吗?
解决方案
不能保证。为了保证你的状态已经改变,你需要useEffect
像这样使用
useEffect(() => {
// do something now that state has changed
}, [state])
推荐阅读
- reactjs - 从 redux 和 react-redux 切换 props
- python - 如何对嵌套字典值进行数字排序?
- java - 在 centOS-ARM 中使用 Apache PDFBox 转换的 PDF 中的字形异常
- python - 初学者——为什么我不能转换成分钟?
- php - PHP Artisan 获取 ErrorException:数组偏移量为空
- java - 如何在wildfly中重定向应用程序路径?
- reactjs - Aborting OLD API Fetch request REACT
- .net - 忘记密码策略重定向
- javascript - 如何更改 NuxtJS 中样式的加载顺序?
- django - 自定义操作的 Django Rest Framework URL 不起作用