我正在尝试将 mouseover/out 事件添加<GeoJSON />
到react-leaflet
. 如果我在下面的代码片段中添加事件并且只添加console.log()
一切正常(鼠标悬停和鼠标悬停工作)。
但是我添加了一个 redux 操作 ( this.props.hoverQuickInfo
) 来更新元素的 css 类。现在我只能注册 mouseover,但永远不会调用 mouseout。我在没有 redux 的情况下尝试了它,并且我使用的是setState
具有相同结果的。
onEachFeature(feature, layer) {
layer.on({
'mouseover': (e) => {
console.log('over!');
// this.setState({show: true});
this.props.hoverQuickInfo(true);
},
'mouseout': (e) => {
console.log('out!');
// this.setState({show: false});
this.props.hoverQuickInfo(false);
},
});
}
我阅读了一些关于它的内容,发现 redux 状态更改将导致调用shouldComponentUpdate
我试图“过滤”掉对“相同”GeoJSON 元素的任何更新,但我不知道如何让它工作以及为什么会发生。
shouldComponentUpdate(nextProps, nextState) {
if (this.props.ui.showQuickInfo) {
return false;
}
return true;
}
也许有人可以帮助我。