Я использую 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
}
}