在 React 中处理组件加载的最佳方式

Best way to handle component loading in react

我有一个应用程序可以从 JSONPlaceholder 获取帖子。它有一个初始状态的帖子:[]。然后调用:

this.setState({posts})

如果我想在组件接收帖子之前呈现加载...,最好说:

if (!this.state.posts.length) // Do something

或者最好在初始状态添加 loading: true 然后说如果组件接收到数据没有错误:

if(!this.state.loading) // Do something

首先,正如评论所说,使用单个 boolean type state 比到处使用 changeable condition 更好。

如果你想加点loading animation,我试过Material-UI processing有时也很方便。

并且在这种情况下用法非常简单。添加一个conditional rendering就大功告成了

import { CircularProgress } from '@material-ui/core';
...
render() {
  const { loading } = this.state;
  return (
    ...
    {loading ? <CircularProgress /> : <YourComponent /> ... 
    ...
  )
}