我需要删除leaflet-routing-machine
控件。我使用react-leaflet
并通过react-leaflet
的示例创建了一个路由组件。
componentWillMount() {
super.componentWillMount();
const { map, from, to } = this.props;
this.leafletElement = L.Routing.control({
waypoints: [
L.latLng(from[0], from[1]),
L.latLng(to[0], to[1]),
],
}).addTo(map);
}
componentWillReceiveProps(nextProps) {
if (this.props.to[0] !== nextProps.to[0] && this.props.to[1]!==nextProps.to[1]) {
this.leafletElement.setWaypoints([]);
//this.leafletElement.removeFrom(this.props.map); ??
this.leafletElement = L.Routing.control({
waypoints: [
L.latLng(nextProps.from[0], nextProps.from[1]),
L.latLng(nextProps.to[0], nextProps.to[1]),
],
}).addTo(nextProps.map);
}
}
render() {
return null;
}
当我尝试删除componentWillReceiveProps
方法时,会出现一些错误:
要删除的节点不是此节点的子节点
和
当componentWillReceiveProps计时器仍在进行另一个实例时,没想到componentDidUpdate计时器正在启动。
也许我走错了方向。我是React的新手,我认为我在React的生命周期方法中错了。
我想我需要从Map中删除此infoBlock
: