【问题标题】:ComponentDidMount and render relationship in ReactReact 中的 ComponentDidMount 和渲染关系
【发布时间】:2020-06-22 22:21:48
【问题描述】:

我读过 componentDidMount 在 React 组件中渲染后运行,但我还是有点困惑。假设我在 componentDidMount 中向 API 发出请求以填充我的状态,但如果渲染在 componentDidMount 之前运行,我的应用程序如何向用户显示信息? React 组件是否在执行类似 render() -> componentDidMount() -> render() 的操作?如果是这样,在 componentDidMount() 之前运行 render() 有什么好处?

【问题讨论】:

  • componentDidMount() 不会阻止渲染。至少,您可以通过条件渲染逻辑来处理它,以显示某种加载消息,直到数据可用并已更新状态。和/或对状态使用逻辑默认值,例如列表/数组数据的空数组,以避免因访问未定义的值而导致错误。

标签: javascript reactjs


【解决方案1】:

当您更新组件的状态或道具更改时,组件会重新呈现。所以如果你在 componentDidMount() 中更新它的状态,那么组件就会重新渲染。

ComponentDidMount 的存在是为了让你知道你的组件已经挂载,正如它的名字所说的那样。因此,例如,如果您需要从 jsx 中获取某物的高度,您可以在此处执行,您不会收到错误提示您的引用未定义,因为您的组件已安装,因此节点存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2020-11-14
    • 2020-05-31
    • 2017-05-16
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多