React Native - функция не распознается внутри другой функции - PullRequest
0 голосов
/ 24 октября 2018

Я использую Firebase Realtime Storage.Я пытаюсь вызвать функцию изнутри функции firebase ref.on ().

Мой код:

export default class HomeScreen extends React.Component {

  constructor(props) {
    super(props);

    ref.on("value", function (snapshot) {
      dosomething(snapshot.val()) //<-- not recognized
    }, function (errorObject) {
      console.log("The read failed: " + errorObject.code);
    });
   } 

  dosomething(val){
    //...
  }

  //....
});

Я пытаюсь заставить функцию dosomething() вызыватьсяиз функции ref.on(), но React не распознает функцию dosomething()

Почему это произошло, узнайте и как это исправить?

Спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 24 октября 2018

вам нужно изменить function (snapshot) { на (snapshot) => {

, теперь this внутри этого обратного вызова - это значение this окружающего лексического контекста, то есть конструктор

и затем вы можете использовать this.dosomething - потому что dosomething является свойством this

export default class HomeScreen extends React.Component {

  constructor(props) {
    super(props);

    ref.on("value", (snapshot) => {
      this.dosomething(snapshot.val())
    }, function (errorObject) {
      console.log("The read failed: " + errorObject.code);
    });
   } 

  dosomething(val){
    //...
  }

  //....
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...