代码之家  ›  专栏  ›  技术社区  ›  Jaimin Modi

函数内部的函数不调用react native

  •  0
  • Jaimin Modi  · 技术社区  · 7 年前

    我刚开始对本机作出反应,并在函数内部调用函数。

    到目前为止,我已经做了以下工作:

    步骤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(快照阵列) .

    设备内AM出现以下错误:

    _ SnapshottoArray未定义

    可能是什么问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Device    7 年前

    我现在不在我的电脑上,所以我不能测试它,但是从你的代码来看,你需要使用一个不同的函数符号来允许父方法和父类的变量访问。

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