javascript - 如何更新状态然后在功能组件中渲染反应原生
问题描述
我试图先更新状态,然后在函数组件中渲染组件。我得到了使用 useEffect 钩子的答案。但是,来自 react 官方网站的文档有点令人困惑,因为它声明“传递给 useEffect 的函数将在渲染提交到屏幕后运行。” (https://reactjs.org/docs/hooks-effect.html)据我了解,它说它先渲染然后运行回调函数。那不是我想要的。我想先更新状态然后渲染。我该如何实施?
解决方案
考虑这是流程:
- 渲染组件
- 注册 useEffect 的回调函数
- 如果上述回调中有更新状态部分,则注册该部分
- 运行上述更新状态函数
- 上面的更新状态触发了重新渲染,所以组件现在再次重新渲染
上面的动作序列发生得很快,您将看到最终渲染的输出。只有一种情况是您在 useEffect 的回调中调用任何异步操作并根据上述异步操作更新状态,在屏幕上观察到的渲染 UI 的状态。
推荐阅读
- android - 如何在颤动中添加或减去两个日期选择器?
- msbuild - (Wix) MSI 卸载非常慢。日志显示缓慢是删除快捷方式时
- database - 如何在 Oracle 中获取记录的创建时间?
- python - 使用 argparse 的有序和重复标志
- ruby-on-rails - 导轨管理员。如何选择要显示的列而不是行 ID?
- swift - NavigationView [Swift] 中的双重列表
- scala - 从现有的 arraytype 列中创建单独的 Spark 数据框
- flutter - 在 PageView 中的 WheelEvent 上 Flutter Web “平滑滚动”
- api - 在 curl (和 Rested API 客户端)中工作,但在 Postman 中不工作?
- asynchronous - Verilog d触发器异步复位亚稳态