首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直到mouseEnter事件才加载简单的React地图图层

直到mouseEnter事件才加载简单的React地图图层
EN

Stack Overflow用户
提问于 2020-04-09 01:08:21
回答 1查看 114关注 0票数 0

地图渲染和颜色填充也会发生,但只有当鼠标输入事件发生时才会发生。如何在加载时触发?我使用的是react-simple-maps,JSON数据是有效的,因为当鼠标进入时它会加载地图。以下是源代码- Github

代码语言:javascript
复制
  const [tooltipContent, setTooltipContent] = useState("");

  const colorScale = scaleQuantile()
    .domain(props.data.map((d) => d.value))
    .range(COLOR_RANGE);

  const onMouseEnter = (geo, current = { value: "NA" }) => {
    return () => {
      setTooltipContent(`${geo.properties.name}: ${current.value}`);
    };
  };

  const onMouseLeave = () => {
    setTooltipContent("");
  };
  return (
    <div>
      <ReactTooltip>{tooltipContent}</ReactTooltip>

      <ComposableMap
        projectionConfig={PROJECTION_CONFIG}
        projection="geoMercator"
        width={700}
        height={600}
        data-tip=""
      >
        <Geographies geography={INDIA_TOPO_JSON}>
          {({ geographies }) =>
            geographies.map((geo) => {
              const current = props.data.find((s) => {
                return s.id === geo.id;
              });
              return (
                <Geography
                  key={geo.rsmKey}
                  geography={geo}
                  fill={current ? colorScale(current.value) : DEFAULT_COLOR}
                  style={geographyStyle}
                  onMouseEnter={onMouseEnter(geo, current)}
                  onMouseLeave={onMouseLeave}
                />
              );
            })
          }
        </Geographies>
      </ComposableMap>
    </div>
  );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-16 13:42:03

我无意中直接改变了状态,并且没有不正确地使用useEffect挂钩

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61106163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档