在 React 上更新间隔图
Updating Graph on Interval on React
我正在从我的数据库中获取数据以将其显示在图表上。目前,我必须刷新页面才能更新图表。我想以 x 间隔刷新图表,因为我的数据将以 x 间隔插入。我正在使用 ant design 来绘制图形。我正在使用 'home' 来显示我的图表,并使用另一个 class 来获取数据。
Home.js
export class Home extends Component {
static displayName = Home.name;
render () {
return (
<div>
<h1>Dashboard</h1>
<h2>
<div className="site-card-wrapper">
Graph1
<Graph />}
</div>
</h2>
</div>
);
}
}
Temp.js
const TempGraph = () => {
const [data, setData] = useState([]);
useEffect(() => {
asyncFetch();
}, []);
const asyncFetch = () => {
fetch('link')
.then((response) => response.json())
.then((json) => setDatajson))
.catch((error) => {
console.log('fetch data failed', error);
});
};
const config = {
data,
xField: 'time',
yField: 'value',
seriesField:'location',
xAxis: {
title: {
text: 'Hours',
}
},
yAxis:{
title:{
text: 'Temperature in °',
}
},
meta: {
time: {
alias: 'hours',
},
value: {
alias: 'temperature',
max: 50,
},
},
};
return <Line {...config} />;
}
export default TempGraph;
您可以在 useEffect 中添加一个 setInterval 来获取数据并再次更新它们。不要忘记在 return:
上清除间隔
useEffect(() => {
const interval = setInterval(() => asyncFetch(), 5000)
return () => clearInterval(interval)
}, []}
本例每5000ms触发一次,根据需要更改值。
我正在从我的数据库中获取数据以将其显示在图表上。目前,我必须刷新页面才能更新图表。我想以 x 间隔刷新图表,因为我的数据将以 x 间隔插入。我正在使用 ant design 来绘制图形。我正在使用 'home' 来显示我的图表,并使用另一个 class 来获取数据。
Home.js
export class Home extends Component {
static displayName = Home.name;
render () {
return (
<div>
<h1>Dashboard</h1>
<h2>
<div className="site-card-wrapper">
Graph1
<Graph />}
</div>
</h2>
</div>
);
}
}
Temp.js
const TempGraph = () => {
const [data, setData] = useState([]);
useEffect(() => {
asyncFetch();
}, []);
const asyncFetch = () => {
fetch('link')
.then((response) => response.json())
.then((json) => setDatajson))
.catch((error) => {
console.log('fetch data failed', error);
});
};
const config = {
data,
xField: 'time',
yField: 'value',
seriesField:'location',
xAxis: {
title: {
text: 'Hours',
}
},
yAxis:{
title:{
text: 'Temperature in °',
}
},
meta: {
time: {
alias: 'hours',
},
value: {
alias: 'temperature',
max: 50,
},
},
};
return <Line {...config} />;
}
export default TempGraph;
您可以在 useEffect 中添加一个 setInterval 来获取数据并再次更新它们。不要忘记在 return:
上清除间隔useEffect(() => {
const interval = setInterval(() => asyncFetch(), 5000)
return () => clearInterval(interval)
}, []}
本例每5000ms触发一次,根据需要更改值。