king
2022-01-21 46f79b491173d284a4900d19e7aecf7509481438
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import React, {Component} from 'react'
/**
 * @description 异步加载模块
 * @param {*} importComponent
 */
export default function asyncComponent(importComponent) {
  return class extends Component {
    constructor(props) {
      super(props)
 
      this.state = {
        component: null
      }
    }
 
    async componentDidMount() {
      const {default: component} = await importComponent()
 
      this.setState({component})
    }
 
    // <Button className="loading-skeleton" disabled={true}></Button> // 骨架按钮
    render() {
      const C = this.state.component
 
      return C ? <C {...this.props} /> : null
    }
  }
}