【发布时间】:2022-01-03 08:12:37
【问题描述】:
我有一个父组件,我需要多次重用一个名为 Chart 的子组件,但使用不同的 props,但发生的情况是第一个组件是唯一一个被修改的组件,并且还被最后一个 Chart 组件的 props 修改.
我知道中心数是通过组件的返回来修改的,但是useEffect里面的逻辑怎么办呢?如果有人可以帮助我,我是 React 新手,谢谢。
代码
const Dashboard = () => {
return (
<>
<div className="chartContainerMain">
<div className="chartsContainer">
<div className="chartContainer">
<p className="nameChart">chart 1</p>
<Chart color="red" number={45} /> ///// This is the component i need
to reuse
</div>
<div className="chartContainer">
<p className="nameChart">chart 2</p>
<Chart color="blue" number={90} /> ///// This is the component i
need to reuse
</div>
</div>
</div>
</>
);
};
export default Dashboard;
//-------- COMPONENT CHART CODE ---------------[![enter image description here][1]][1]
import { useEffect } from "react";
import "./chart.css";
const Chart = ({ color, number }) => {
useEffect(() => {
let circle = document.querySelector(".circle");
circle.style.strokeDasharray = `${number} 100`;
circle.style.stroke = `${color}`;
}, [color, number]);
return (
<>
<div className="donut-chart">
<svg viewBox="0 0 32 32">
<circle className="circle" r="16" cx="16" cy="16" />
</svg>
<div className="donut-center">
<p className="centerNumber">{number}%</p>
</div>
</div>
</>
);
};
export default Chart;
你可以看到这张图片 https://i.stack.imgur.com/762F6.png
【问题讨论】:
标签: css reactjs use-effect use-state