如何从函数调用函数?

时间:2019-06-25 02:15:07

标签: function react-native scope

我真的不太了解React native中变量的范围。

我正在从另一个组件中调用一个函数,并且在该函数中有对该组件的函数的调用,但这似乎超出了该函数的范围:

addKeytoUser = (key, userID) => {
    try {
        this.collection(`${usrPostsDB}`).doc(`${key}`)
            .update(`${likesCol}`, firebase.firestore.FieldValue.increment(1))
        .then((result) => {
            this.collection(`${usrLikesCol}`).doc(`${userID}`).add(`${key}`);
             return result;
        }); 
    } catch ({ message }) {
        console.log(message);
    }       
}

collection是实际组件的功能,第一次调用它会返回正确的值,但是在(result)=>内顺序执行后第二次调用它时,则返回this.collection不存在。 如何从.then()=>

调用组件函数

谢谢

2 个答案:

答案 0 :(得分:0)

您可以将collection函数传递给addKeyToUser函数作为道具。看起来像这样:

addKeytoUser = (key, userID, collection) => {
    try {
        collection(`${usrPostsDB}`).doc(`${key}`)
          .update(`${likesCol}`, firebase.firestore.FieldValue.increment(1))
          .then((result) => {
            collection(`${usrLikesCol}`).doc(`${userID}`).add(`${key}`);
            return result;
          }); 
    } catch ({ message }) {
        console.log(message);
    }       
}

这也将使您的代码看起来更简洁,更易读。

答案 1 :(得分:0)

您必须绑定addKeytoUser函数,在像这样的构造函数中this.addKeytoUser = this.addKeytoUser.bind(this);