import React, {Component} from 'react'
|
import PropTypes from 'prop-types'
|
import MKEmitter from '@/utils/events.js'
|
|
class Iframe extends Component {
|
static propTypes = {
|
title: PropTypes.string,
|
MenuID: PropTypes.string, // 菜单Id
|
url: PropTypes.string
|
}
|
|
state = {
|
visible: true
|
}
|
|
componentDidMount () {
|
MKEmitter.addListener('reloadMenuView', this.reloadMenuView)
|
}
|
|
/**
|
* @description 组件销毁,清除state更新
|
*/
|
componentWillUnmount () {
|
this.setState = () => {
|
return
|
}
|
MKEmitter.removeListener('reloadMenuView', this.reloadMenuView)
|
}
|
|
reloadMenuView = (menuId) => {
|
const { MenuID } = this.props
|
|
if (MenuID !== menuId) return
|
|
this.setState({visible: false}, () => {
|
this.setState({visible: true})
|
})
|
}
|
|
render () {
|
const { visible } = this.state
|
|
return (<div>
|
{visible ? <iframe title={this.props.title} src={this.props.url} /> : null}
|
</div>)
|
}
|
}
|
|
export default Iframe
|