Функция внутри функции, не вызывающая в React Native - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок в реакции на родную и вызываю функцию внутри функции.

На данный момент я выполнил следующие действия:

Шаг 1. Создание функции _snapshotToArray для преобразования снимка Firebase в Arrray.

_snapshotToArray(snapshot) {
var returnArr = [];

snapshot.forEach(function(childSnapshot) {
    var item = childSnapshot.val();
    item.key = childSnapshot.key;

    returnArr.push(item);
});
return returnArr;
 }

Шаг 2. Создайте еще одну функцию, как показано ниже, и вызовите _snapshotToArray внутри нее.

_readUserDataFromFirebaseConsole() {//once and on
firebase.database().ref('Users/').on('value', function (snapshot) {
    console.log(this._snapshotToArray(snapshot));
    Toast.show(this._snapshotToArray(snapshot),Toast.LONG);
});
}

Говоря об этомВызов:

console.log(this._snapshotToArray(snapshot));

Когда я нажимаю CTRL + CLick, он не позволяет мне перейти к телу функции _snapshotToArray .

В устройстве появляется ошибка ниже:

_snapshotToArray не определен

В чем может быть проблема?

1 Ответ

0 голосов
/ 15 ноября 2018

Я сейчас не за своим компьютером, поэтому я не могу его протестировать, но, посмотрев на ваш код, вам нужно использовать другую нотацию функций, чтобы разрешить доступ к / из родительских методов и родительского класса.

_snapshotToArray = snapshot => {
    var returnArr = [];

    snapshot.forEach(function(childSnapshot) {
        var item = childSnapshot.val();
        item.key = childSnapshot.key;

        returnArr.push(item);
    });
    return returnArr;
}

и

_readUserDataFromFirebaseConsole = () => {
    firebase.database().ref('Users/').on('value', snapshot => {
        console.log(this._snapshotToArray(snapshot));
        Toast.show(this._snapshotToArray(snapshot),Toast.LONG);
    });
}
...