Функция Asyn c не определена, несмотря на привязку - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь выяснить, почему функция storeEmailVerified () в моем коде React Native ниже возвращает undefined. Вот сообщение об ошибке:

that.storeEmailVerified не является функцией. (В 'that.storeEmailVerified ("true") "," that.storeEmailVerified "не определено)

Я связал обе следующие функции с' this 'в конструкторе.

constructor(props) {
  super(props);
  this.storeEmailVerified = this.storeEmailVerified.bind(this);
  this.checkEmailVerified = this.checkEmailVerified.bind(this);
}

checkEmailVerified = async () => {
   let currentUser = firebase.auth().currentUser.uid;
    firebase.database().ref().child("/users").child(currentUser).on("value", function (snapshot) {
      if (snapshot.exists()) {
        const emailVerified = snapshot.child("emailVerified").val();
        if (emailVerified == true) {
          this.setState({
            emailVerified: true
          })
          this.storeEmailVerified("true");
          // AsyncStorage.setItem("emailVerified", true)
        }
        else {
          this.setState({
            emailVerified: false
          })
          this.storeEmailVerified("false");
          // AsyncStorage.setItem("emailVerified", false)
        }
      }
    });
  };

  storeEmailVerified = async status => {
    try {
      await AsyncStorage.setItem("emailVerified", status)
    } catch (error) {
      alert(error)
      return 'error'
    }
  }
...