king
2023-08-29 3e168c2a5149f1a56e41cacf4eda95d10b497210
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import React, {Component} from 'react'
import { Button } 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
      const btn = this.props.btn || {}
      let style = {}
 
      if (!C && btn.style) {
        style.marginRight = btn.style.marginRight || ''
        style.marginLeft = btn.style.marginLeft || ''
        style.marginTop = btn.style.marginTop || ''
        style.marginBottom = btn.style.marginBottom || ''
      }
 
      return C ?
        <C {...this.props} /> :
        <Button className={'mk-btn mk-' + btn.class} style={style} disabled={true} >{btn.label}</Button>
    }
  }
}