我有一个 svg 地图组件,我想在props更改时更新它。在某些路径上添加和减去类……诸如此类。
Snap.svg 似乎是要走的路。如果有人知道更好的方法,我想听听!
所以这是我的渲染方法,用皱眉标记的两行是我想要在生命周期方法中工作的那些,例如 ComponentWillReceiveProps
render() {
var map = Snap('#map');
Snap.load("images/map.svg", function(data){
if (map) {
map.append(data);
const a2047 = map.select('#a2047'); <---- :(
a2047.attr({stroke:'yellow', strokeWidth:'6px'}) <---- :(
}
})
return (
<div className="map" id="map"/>
);
}
问题是,map
除了在这个Snap.load
回调中之外,在其他任何地方都无法工作。我尝试了几种方法,使用state
, window.map
, this.map
... 并且我收到诸如“select is not a function”之类的错误。
如何访问 中的地图ComponentWillReceiveProps
?
或者 Snap.svg 甚至是这个应用程序的方法?