我有一个条形图,其中的条形图是根据其y值填充的.如何更改悬停状态下的背景 colored颜色 ?

红色--紫色 绿色-&>蓝色

Sandbox

export default function App() {
  const colorizeBars = (data) => {
    const coloredData = data.map((bar) => {
      if (bar.uv > 3000) {
        return { ...bar, fill: "#00ff00" };
      } else {
        return { ...bar, fill: "#ff0000" };
      }
    });
    return coloredData;
  };
  const coloredData = colorizeBars(data);
  return (
    <div style={{ height: 300 }}>
      <ResponsiveContainer width="100%" height="100%">
        <BarChart
          width="100%"
          height={300}
          data={coloredData}
          margin={{
            top: 50,
            right: 30,
            left: 20,
            bottom: 5,
          }}
        >
          <XAxis
            dataKey="name"
            tickLine={false}
            style={{
              fontSize: 14,
              color: "#000000",
              fontFamily: "Arial",
              fontWeight: "bold",
            }}
          />
          <YAxis tickLine={false} />
          <Tooltip />
          <Legend />
          <Bar dataKey="uv" label={<CustomizedLabel />} />
        </BarChart>
      </ResponsiveContainer>
    </div>
  );
}

推荐答案

我不确定这是不是最好的方法,但我就是这么做的.我将Bar组件props 修改为

<Bar
  dataKey="uv"
  label={<CustomizedLabel />}
  shape={(props) => (
    <rect
      {...props}
      onMouseEnter={() => setHover(props.index)}
      onMouseLeave={() => setHover(null)}
      fill={hover === props.index ? "#ff5100" : props.payload.fill}
    />
  )}
/>

现在我们需要做的就是添加一个状态来跟踪悬停的条

const [hover, setHover] = useState();

希望这能有所帮助

编辑 为了不丢失您放置的默认样式,我将填充更改为pros.payload.ill

Reactjs相关问答推荐

Shadck/ui Select -当用户 Select 项目时更改状态

运行 node server.js会导致以下错误:Route.post()需要回调函数,但在Route.&处得到了[对象Undefined] lt;计算>

条件索引路由

单击按钮时在子元素中不显示任何内容-react

利用OVERPASS API端点计算某建筑的表面积

XChaCha20-Poly1305的解密函数

无法找出状态正在被更改的位置

阻止组件更新的多分派Redux Thunk或setState是否有任何问题

点击页脚链接时,如何更改ReactJS导航栏中的活动菜单项(样式为Tailwind CSS)?

状态改变不会触发重新渲染

错误:无法获取 RSC 负载.返回浏览器导航

useEffect 内的 onClick 和 addEventListener 之间的 click 事件顺序差异

是的验证:使用 useFieldArray 访问表单值

React Router v6 路径中的符号

Recharts 笛卡尔网格 - 垂直线和水平线的不同样式

Primereact 的日历组件在每个月 12 日之后使用非唯一键生成

动态添加或删除文本输入字段并将值设置为 React JS 中主要状态的数组

用 scss 覆盖 MUI

使用 React、Redux 和 Firebase 的无限循环

我想将悬停 colored颜色 更改为红色.写了一个话题,这个元素没有react ,怎么解决呢?