【发布时间】:2022-01-14 16:14:23
【问题描述】:
我遇到的问题是,只要传递到 jvectormap 的数据发生变化,地图就不会反映这些变化。
在我的状态下,我有两组数据:data1 和 data2。在我的渲染方法中,我有一个按钮,一旦单击该按钮,它就会将this.state.data1 更改为与this.state.data2 具有相同的内容,因为地图将this.state.data1 作为markers 的值。这是我的渲染函数:
render() {
return (
<div>
<a
href="#"
onClick={() =>
this.setState({ data1: this.state.data2 }, () =>
console.log(this.state.data1)
)
}
>
Click
</a>
<div style={{ width: 500, height: 300 }}>
<VectorMap
map={"world_mill"}
backgroundColor="#FFFFF"
markerStyle={{
initial: {
fill: "#FFFF",
stroke: "#383f47"
}
}}
series={{
markers: [
{
attribute: "r",
scale: [5, 20],
values: [60, 6, 54],
normalizeFunction: "polynomial"
}
]
}}
regionStyle={{
initial: {
fill: "#128da7"
},
hover: {
fill: "#A0D1DC"
}
}}
markers={this.state.data1}
ref="map"
containerStyle={{
width: "100%",
height: "100%"
}}
containerClassName="map"
/>
</div>
</div>
);
}
}
整个代码很简单,可以在这里找到:https://codesandbox.io/s/2vx2k1vl9n。
如您所见,在按钮的 onClick 方法中,我在设置状态后打印data1,以确保它的值发生变化,但它没有反映在地图上。谁能帮我解决这个问题?
提前致谢!
【问题讨论】:
标签: reactjs jvectormap