loading.jsx 807 B

123456789101112131415161718192021222324252627282930
  1. import React from 'react'
  2. import { Spin } from 'antd'
  3. import { connect } from 'dva'
  4. import './loading.less'
  5. const Loading = ({ loading, loadModels }) => {
  6. loadModels.unshift('loading...');
  7. return (
  8. <div className='loading-box' style={{ display: loading ? 'block' : 'none' }} >
  9. <Spin size="large" tip={loadModels.map((m, i) => {
  10. return <span key={i}>{m}</span>
  11. })}/>
  12. </div>
  13. );
  14. }
  15. function mapStateToProps(state) {
  16. const models = state.present.loading.models;
  17. let loading = false;
  18. let loadModels = [];
  19. for(let model in models) {
  20. if(models[model]) {
  21. loading = true;
  22. loadModels.push(model);
  23. }
  24. }
  25. return { loading, loadModels };
  26. }
  27. export default connect(mapStateToProps)(Loading)