在推送新数据反应之前检查以前的数据
Check previous data before pushing new data react
我有一个 api get 调用,它具有动态 json(值不断变化)。我目前将该数据存储在新的 array.i 我目前正在使用 setinterval 检查api 中的新数据。发生的事情是我将重复数据推送到我的数组,因为它在特定时间间隔连续检查。在新数据到达之前,它会不断将重复数据推送到数组。请指导我如何解决这个问题。我想在推送之前检查数据我不知道该怎么做。
反应代码:
this.interval =setInterval(() => {
fetch(`http://localhost:5000/api/2.0/mlflow/runs/get?run_id=sdgdfg`)
.then((response) => response.json())
.then(booksList => {
this.setState({ books: booksList.run.data.metrics});
})
let floors = [...this.state.dataPoints];
//push the values to new array
floors.push({
y: this.state.books[0].timestamp,
mAp: this.state.books[0].value
});
this.setState({ dataPoints:floors });
},150000)
您必须检查您的新值是否已存在于当前数组中:
fetch(`http://localhost:5000/api/2.0/mlflow/runs/get?run_id=sdgdfg`)
.then((response) => response.json())
.then(booksList => {
this.setState({
books: booksList.run.data.metrics
});
});
let floors = [...this.state.dataPoints];
const newFloor = {
y: this.state.books[0].timestamp,
mAp: this.state.books[0].value
};
const alreadyExists = floors.some(floor => {
return floor.y === newFloor.y && floor.mAp === newFloor.mAp;
});
if (!alreadyExists) {
this.setState({
dataPoints: [...floors, newFloor]
});
}
我有一个 api get 调用,它具有动态 json(值不断变化)。我目前将该数据存储在新的 array.i 我目前正在使用 setinterval 检查api 中的新数据。发生的事情是我将重复数据推送到我的数组,因为它在特定时间间隔连续检查。在新数据到达之前,它会不断将重复数据推送到数组。请指导我如何解决这个问题。我想在推送之前检查数据我不知道该怎么做。 反应代码:
this.interval =setInterval(() => {
fetch(`http://localhost:5000/api/2.0/mlflow/runs/get?run_id=sdgdfg`)
.then((response) => response.json())
.then(booksList => {
this.setState({ books: booksList.run.data.metrics});
})
let floors = [...this.state.dataPoints];
//push the values to new array
floors.push({
y: this.state.books[0].timestamp,
mAp: this.state.books[0].value
});
this.setState({ dataPoints:floors });
},150000)
您必须检查您的新值是否已存在于当前数组中:
fetch(`http://localhost:5000/api/2.0/mlflow/runs/get?run_id=sdgdfg`)
.then((response) => response.json())
.then(booksList => {
this.setState({
books: booksList.run.data.metrics
});
});
let floors = [...this.state.dataPoints];
const newFloor = {
y: this.state.books[0].timestamp,
mAp: this.state.books[0].value
};
const alreadyExists = floors.some(floor => {
return floor.y === newFloor.y && floor.mAp === newFloor.mAp;
});
if (!alreadyExists) {
this.setState({
dataPoints: [...floors, newFloor]
});
}