在推送新数据反应之前检查以前的数据

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]
  });
}