React извлекает данные firebase трижды

#reactjs #firebase

#reactjs #firebase

Вопрос:

ПРЕДЫСТОРИЯ:

Я пытаюсь получить данные и построить круговую диаграмму, используя react google charts.

ПРОБЛЕМА

Данные извлекаются трижды (чего не должно быть)

код

У меня консоль зарегистрировала проблему.

https://codesandbox.io/s/3vmo6xw4n1?fontsize=14

Любые предложения, подсказки были бы полезны, заранее спасибо

Комментарии:

1. Это запись в консоль несколько раз, потому что у вас есть цикл for, заключенный в цикл foreach. Это не потому, что данные извлекаются несколько раз.

Ответ №1:

firebaseLooper отправляет три объекта в данные. Удаление этого для каждого цикла и нажатие только один раз должно решить вашу проблему.

Ответ №2:

Консоль.журнал происходил несколько раз, потому что вы использовали foreach внутри цикла for . Измените код, как показано ниже, и он будет работать нормально.

Обратите внимание, что я использовал data вместо snapshot для foreach . Вы также можете использовать снимок.

 componentDidMount() {
    var subpath = "Maternal/ChildRegistration";
    ///AVgYUYIzOnYnh7D4a5ImKjM63mp2/${subpath}
    var countMale = 0;
    var countFemale = 0;
    firebase
      .database()
      .ref(`users`)
      .once("value")
      .then(snapshot => {
        var count = 0;
        const data = firebaseLooper(snapshot);
        var i;
        var currentsupervisorid = "7Fd8iLXHNlR7qHhdx9DouciKfbC2";
        console.log(data);
        data.forEach(child => {
          if (child.anganwadidetails.supervisorid === currentsupervisorid) {
            console.log(child);
          }
        });
        this.setState({
          value1: countMale,
          value2: countFemale
        });
      })
      .catch(e => {
        console.log("error returned - ", e);
      });
  }