OnClick не запускается, когда элемент уже был нажат - PullRequest
0 голосов
/ 07 сентября 2018

Я использую react-leaflet, и я хочу стилизовать объект из векторного векторного слоя при его нажатии. Это вроде работает. Когда я нажимаю на функцию в первый раз, вызывается функция click и регистрируется yay - clicked. При нажатии на другую, но еще не выбранную функцию также регистрируется yay - clicked. Тем не менее, как только я щелкаю по элементу, который был выбран ранее, следовательно, применяется стиль selectedStyle, функция click больше не вызывается. yay - clicked не зарегистрировано. Почему это так?

import L from 'leaflet'
import { GridLayer } from 'react-leaflet'

const normalStyle = {
  color: 'black',
}

const selectedStyle = {
  color: 'red',
}

export default class Foo extends GridLayer {

  createLeafletElement(props) {
    let layer = L.vectorGrid.protobuf(props.url, {
      vectorTileLayerStyles: { berlin_flur: defaultStyle },
      subdomains: "",
      key: 'foo',
      interactive: true,
      maxNativeZoom: 16,
      debug: false,
      zIndex: props.zIndex,
      getFeatureId: (f) => {
        return f.foo.bar;
      }
    })

    layer.on('click', function (e) {
      console.log('yay - clicked')
      let properties = { ...e.fooBar.properties }
      if (...)) {
        layer.setFeatureStyle(foo.bar, normalStyle);
      } else {
        layer.setFeatureStyle(foo.bar, selectedStyle);
      }
    });

    return layer
  }
}
...