import React, {Component} from 'react'
|
import { Spin } from 'antd'
|
|
/**
|
* @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})
|
}
|
|
componentWillUnmount () {
|
this.setState = () => {
|
return
|
}
|
}
|
|
render() {
|
const C = this.state.component
|
|
return C ?
|
<C {...this.props} /> :
|
<Spin style={{position: 'fixed', left: 'calc(50vw - 22px)', top: 'calc(50vh - 70px)', zIndex: 10}} size="large" />
|
}
|
}
|
}
|