Angular + openLayers. Удаление features при поиске

У меня есть тестовая карта с двумя слоями vectorLayer и TileLayer и выпадающий список стран для поиска. При выборе нужной страны и нажатии на кнопку найти, нужная страна подствечивается контуром, то есть добавляется доп. слой наложения, то есть таким способом можно выделить все страны. Но мне нужно, чтобы при поиске страны предыдущая удалялась но при вызове метода "removeFeatures" вылетает исключение в коде JS: "Cannot read property 'forEach' of undefined". Как это правильно реализовать? Метод для поиска:

public searchLocation(event: Event): void {
    this.highlight = this.vector?.getSource().getFeatureById('RUS')!;
    this.featureOverlay = new VectorLayer({
      source: new VectorSource({ useSpatialIndex: false }),
      map: this.map,
      style: (feature) => {
        this.highlightStyle.getText().setText(feature.get('name'));
        return this.highlightStyle;
      },
    });

    var feature = this.vector
      ?.getSource()
      .getFeatureById(this.selectedCountry.id!);

    if (feature !== this.highlight!) {
      if (this.highlight!) {
        this.featureOverlay?.getSource().removeFeature(this.highlight);
      }
      if (feature) {
        this.featureOverlay?.getSource().addFeature(feature);
      }

      this.highlight = feature!;
    }
  }

Ответы (1 шт):

Автор решения: DENIS

this.featureOverlay создавался каждый раз при вызове события и поэтому нужная features при удалении не запоминалась в дереве элементов. И поэтому браузер указывал на forEach.

→ Ссылка