首页 > 解决方案 > 如何更新状态然后在功能组件中渲染反应原生

问题描述

我试图先更新状态,然后在函数组件中渲染组件。我得到了使用 useEffect 钩子的答案。但是,来自 react 官方网站的文档有点令人困惑,因为它声明“传递给 useEffect 的函数将在渲染提交到屏幕后运行。” (https://reactjs.org/docs/hooks-effect.html)据我了解,它说它先渲染然后运行回调函数。那不是我想要的。我想先更新状态然后渲染。我该如何实施?

标签: javascriptreactjsstateuse-effect

解决方案


考虑这是流程:

  • 渲染组件
  • 注册 useEffect 的回调函数
  • 如果上述回调中有更新状态部分,则注册该部分
  • 运行上述更新状态函数
  • 上面的更新状态触发了重新渲染,所以组件现在再次重新渲染

上面的动作序列发生得很快,您将看到最终渲染的输出。只有一种情况是您在 useEffect 的回调中调用任何异步操作并根据上述异步操作更新状态,在屏幕上观察到的渲染 UI 的状态。


推荐阅读