【问题标题】:How to make sure API call receive data before react component initial render?如何确保 API 调用在响应组件初始渲染之前接收数据?
【发布时间】:2019-04-01 04:15:19
【问题描述】:

该应用是单页应用,初始渲染由于其渲染未定义变量而引发错误。

我最好的猜测是在 getDerivedStateFromProps(props, state) 中调用 API 调用,但文档说“如果您需要执行副作用(例如,数据获取或动画)以响应道具的变化,请使用而是 componentDidUpdate 生命周期。”

【问题讨论】:

  • 可能需要条件渲染(参见文档)。需要向我们展示一些代码并始终具体说明错误消息
  • 你不能真正阻止 render()。相反,只需使用条件渲染来仅渲染给定的元素或组件。 reactjs.org/docs/conditional-rendering.html

标签: reactjs


【解决方案1】:

我一直使用的解决方案是:

  • 在您的组件状态中设置一个初始值为 true 的变量“isLoading”。
  • 如果您只调用一次 api,请在您的异步 ComponentDidMount 中执行,一旦 api 调用完成,将 isLoading 设置为 false
  • 在渲染中检查变量。如果为 true,则显示微调器或“正在加载”消息。如果 false 在组件中显示您需要的任何内容
  • 如果 api 被周期性调用或在事件中调用,则每次调用 api 时将 state 变量设置为 false,并在调用完成后将其清除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-11
    • 2021-09-30
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2017-02-02
    相关资源
    最近更新 更多