在Material-UI CardMedia中显示加载程序

时间:2018-06-26 23:54:30

标签: reactjs material-ui

当图像尚未加载但无法正常工作时,我试图在CardMedia中显示加载器。如果我将加载程序放置在CardText中,则页面正在工作并显示加载程序。我的代码有什么问题,或者有解决方案可以在图像加载之前在卡介质中显示加载器?

Screenshot for your ref

我正在使用material-ui v0版本。

这是我的代码

加载程序:

renderLoading(){
return (
  <RefreshIndicator
    size={40}
    left={10}
    top={0}
    status="loading"
    style={{marginLeft: '50%', display: 'inline-block', position: 'relative'}}
/>
)
}

卡:

<CardMedia overlay={<CardTitle title={this.props.userName} subtitle="Your cover photo" />}>
   {this.props.coverPhotoLoading && this.renderLoading()} //this isn't working 
   {coverPhoto ? <img src={coverPhoto} width="100%" height="400px"/> :
      <img src="" alt="This user cover photo is not set" width="100%" height="400px"/>}

</CardMedia>

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是,您试图同时显示<RefreshIndicator />和空白<img/>

考虑做以下事情:

<CardMedia overlay={<CardTitle title={this.props.userName} subtitle="Your cover photo" />}>
   {!this.props.coverPhotoLoading && coverPhoto ?
    <img src={coverPhoto} width="100%" height="400px"/> :
    this.renderLoading()}
</CardMedia>