UNPKG

rc-bmap

Version:

<p align="center"> <img src="https://bmap.jser-club.com/home.png" width="200px"> </p> <p align="center">基于 React 的百度地图组件</p>

58 lines (46 loc) 1.24 kB
import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { Util } from '../../core'; class Common extends PureComponent { static contextTypes = { centralizedUpdates: PropTypes.func, } config = {} static displayName = 'CommonBaseComponent'; static childContextTypes = { centralizedUpdates: PropTypes.func, } getChildContext() { return { centralizedUpdates: this.centralizedUpdates, }; } componentDidMount() { const { context, getData } = this; const data = (getData && getData()) || {}; context.centralizedUpdates(data); } componentDidUpdate() { const { context, getData } = this; const data = (getData && getData()) || {}; context.centralizedUpdates(data); } componentWillUnmount() { const { context, getData } = this; const data = (getData && getData()) || {}; data.data = null; context.centralizedUpdates(data); } centralizedUpdates = ({ name, data }) => { const configName = Util.firstLowerCase(name); this.config[configName] = data; } render() { const { children } = this.props; if (children) { return <div>{children}</div>; } return null; } } export default Common;