javascript - Material-UI RefreshIndicator 在初始页面加载中不显示

标签 javascript reactjs material-ui

我在初始页面加载时无法显示加载图标。该代码对我来说看起来不错,但有些它没有显示加载图标。我正在使用 Material ui RefreshIndicator 来加载图标。我正在使用 material-ui V^0.18.7

这是我最初的 App.js 代码

import React, { Component } from 'react';
import HeaderTemplate from './Layout/Components/Header';
import FooterTemplate from './Layout/Components/Footer';
import RefreshIndicator from 'material-ui/RefreshIndicator';
import RaisedButton from 'material-ui/RaisedButton';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
class App extends Component {
  constructor(props){
    super(props);
    this.state = {
      showLoading: true
    }
  }
  componentDidMount(){
    this.setState({
      showLoading: false
    })
  }

  renderLoading(){
      <RefreshIndicator
        size={40}
        left={10}
        top={0}
        status="loading"
        style={{display: 'inline-block', position: 'relative'}}
      />
  }
  render() {
    const muiTheme = imports.getMuiTheme({

    });
    return (
      <MuiThemeProvider muiTheme={muiTheme}>
        <div>
        <HeaderTemplate logo="Postme" />
          <div id="demo-settings" className="">
            <a href="#" id="demo-settings-toggler" className="fa fa-dot-circle-o"></a>
          </div>
        <div className="container-fluid bodyfluid">
        {this.state.showLoading ? this.renderLoading(): ''}
          {this.props.children}
        </div>
        <FooterTemplate />
      </div>
      </MuiThemeProvider>
    );
  }
}

export default App;

最佳答案

您的方法 renderLoading() 不会返回任何内容。它只是将 JSX-Element 创建为“无”。

import React, { Component } from 'react';
import HeaderTemplate from './Layout/Components/Header';
import FooterTemplate from './Layout/Components/Footer';
import RefreshIndicator from 'material-ui/RefreshIndicator';
import RaisedButton from 'material-ui/RaisedButton';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
class App extends Component {
  constructor(props){
    super(props);
    this.state = {
      showLoading: true
    }
  }
  componentDidMount(){
    this.setState({
      showLoading: false
    })
  }

  renderLoading(){
    return (<div style={{position: 'relative'}}>
      <RefreshIndicator
        size={40}
        left={10}
        top={0}
        status="loading"
        style={{display: 'inline-block', position: 'relative'}}
      />
  </div>);
  }
  render() {
    const muiTheme = imports.getMuiTheme({

    });
    return (
      <MuiThemeProvider muiTheme={muiTheme}>
        <div>
        <HeaderTemplate logo="Postme" />
          <div id="demo-settings" className="">
            <a href="#" id="demo-settings-toggler" className="fa fa-dot-circle-o"></a>
          </div>
        <div className="container-fluid bodyfluid">
        {this.state.showLoading ? this.renderLoading(): ''}
          {this.props.children}
        </div>
        <FooterTemplate />
      </div>
      </MuiThemeProvider>
    );
  }
}


export default App;

现在它返回您创建的 JSX 元素,并且它应该按照您喜欢的方式呈现。

关于javascript - Material-UI RefreshIndicator 在初始页面加载中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49010713/

相关文章:

javascript - 可以进行不返回的 AJAX 调用吗?

reactjs - 使用 Navigator.push() 时是否可以禁用转换?

javascript - 无法理解选择器和绑定(bind)的使用

javascript - 简单 react 错误 : Can't use @material-ui/picker library in Next. js

javascript - 将输入的动态值作为标签的单选按钮

ReactJS Material UI图标按钮上传文件

javascript - 如何创建一个固定按钮,当使用 HTML 和 CSS 单击时会打开联系表单?

JavaScript开发和生产模式

javascript - 如何延迟基本的 HTML 工具提示?

javascript - React router dom在一种情况下显示公共(public)组件并在另一种情况下隐藏