首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击时更改区域颜色(react-simple-maps)

单击时更改区域颜色(react-simple-maps)
EN

Stack Overflow用户
提问于 2021-02-10 06:14:06
回答 1查看 205关注 0票数 0

我使用的是react simple maps。我创建了一个美国地图,我需要在点击时更改状态的颜色。我可以通过向Geography组件添加一个press style prop来更改它,但是当click事件结束时,颜色会恢复为默认颜色。有没有办法让点击的颜色保持不变?

EN

回答 1

Stack Overflow用户

发布于 2021-08-11 00:07:58

您必须存储clickedCity,在像这样检查之后

代码语言:javascript
复制
  const [clickedCity, setClickedCity] = useState("");
  const handleClick = (geo) => {
    setClickedCity(geo.properties.name);
    dispatcher(getState({ value: geo.properties.name }));
    history.push({
      pathname: "/issues",
      state: { states: geo.properties.name },
    });
  };
           
 <Geographies geography={TUNISIA_TOPO_JSON}>
          {({ geographies }) =>
            geographies.map((geo) => {
              const isClicked = clickedCity === geo.properties.name;
              return (
                <Geography
                  key={geo.rsmKey}
                  geography={geo}
                  fill={isClicked ? "blue" : "red"}
                  stroke="#88c399"
                  strokeWidth="4"
                  onMouseEnter={onMouseEnter(geo, current)}
                  onMouseLeave={onMouseLeave}
                  onClick={() => handleClick(geo)}
                  style={{...}}
                />
              );
            })
          }
</Geographies>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66128019

复制
相关文章

相似问题

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