Удаляемый узел не является дочерним по отношению к этому узлу

Мне нужно удалить 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 В методе возникают некоторые ошибки:

Удаляемый узел не является дочерним по отношению к этому узлу

а также

Не ожидалось, что таймер componentDidUpdate запустится, пока таймер componentWillReceiveProps все еще выполняется для другого экземпляра.

Возможно, я пошел в неправильном направлении. Я новичок в React и считаю, что ошибся в методах жизненного цикла React.

Я полагаю, что мне нужно удалить это infoBlock с карты:

введите описание изображения здесь

0 ответов

Другие вопросы по тегам