我创建了一个饼图来显示口袋妖怪捕获率。console.logs一开始工作正常,但随后它似乎继续运行,因此数据不再正确显示。props值是来自另一个组件的useState变量。
下面是我的代码:
const [captureRate, setCaptureRate] = useState();
// const [lossRate, setLossRate] = useState();
console.log("run");
let capture=[];
let notCapture=0;
console.log((props.nameForRate));
useEffect(() => {
axios.get('https://pokeapi.co/api/v2/pokemon-species/'+(props.nameForRate)+'/')
.then((res)=>{
let data=res.data;
capture[0] = data.capture_rate;
capture[1] = 255 - (data.capture_rate);
console.log(("it works " +capture));
setCaptureRate(capture);
});
console.log("here it is again " + captureRate[0]);
}, []);
return(
<>
<div className="componentInteriorDoughnut">
{/* <h3>Chart 2: Doughnut Chart</h3> */}
<div className="CaptureRate">
<Doughnut
data={{
labels: ['Captured', 'Not Captured'],
datasets: [{
label: 'Capture Rate',
data: captureRate,
backgroundColor: [
'rgb(42, 157, 143)',
'#f1f1f1',
],
borderWidth: 0,
// borderRadius:10,
},
2条答案
按热度按时间roqulrg31#
您可以尝试添加侦听器到特定的值更改,此函数将在每次状态更改时调用。而不是下面的代码
相反,如果你可以指定监听哪个变量,那么多个函数调用就可以避免了。
在这种情况下,如果notCaputure变量发生任何更改,则仅触发函数
jpfvwuh42#
请检查以下代码。它可能会对您有所帮助。
详情请参阅以下链接
https://pnp.github.io/sp-dev-fx-controls-react/controls/ChartControl/