rc-bmap
Version:
<p align="center"> <img src="https://bmap.jser-club.com/home.png" width="200px"> </p> <p align="center">基于 React 的百度地图组件</p>
37 lines (30 loc) • 926 B
JavaScript
import { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { TileLayer as BTileLayer } from '../../core';
class TileLayer extends PureComponent {
static contextTypes = {
getMapInstance: PropTypes.func,
}
componentDidMount() {
const { context, props } = this;
const { children, ...resetProps } = props;
this.config = { ...this.config, ...resetProps };
this.mapInstance = context.getMapInstance();
const layer = new BTileLayer(this.config, this.mapInstance);
this.layer = layer;
this.instance = layer.instance;
}
componentDidUpdate() {
const { children, ...resetProps } = this.props;
this.config = { ...this.config, ...resetProps };
this.layer.repaint({ ...this.config });
}
componentWillUnmount() {
this.layer.destroy();
}
render() {
const { children } = this.props;
return children || null;
}
}
export default TileLayer;