对本机箭头函数和 geoQueries 做出反应

react native arrow functions and geoQueries

我还在为箭头函数苦苦挣扎。我之前发过这些帖子:

但现在我遇到了一个新问题,即如何将它们与 geoQuery 一起使用。我试过下面显示的代码:

    myFunction = () => {

    var onKeyMovedRegistration = () => geoQuery.on("key_moved", function(key, location, distance) {
        console.log('Test log');
        if (key != this.props.userID) {
            arraySearchResult = findKeyInArray(key, this.props.arrayOfKeys);
            if (arraySearchResult != "keyNotFound") {    
                console.log(key + " moved within query to " + location + " (" + distance + " km from center)");
            }
        }    
    })
    }

所以 myFunction 是绑定的,我也在尝试绑定 geoQuery,否则如果我使用原始行 this.props.userID 和 this.props.arrayOfKeys 将无法访问:

var onKeyMovedRegistration = geoQuery.on("key_moved", function(key, location, distance) {

通过上面的尝试,没有触发任何东西。我没有 "Test log" 到控制台。没有崩溃或错误,这显然不是应该如何完成的。

任何人都知道我怎样才能通过这个?

由于您的 geoFire listener 函数 未绑定 因此您无法访问它的 class 级别道具。

因此,最简单的方法是在此处使用箭头函数

geoQuery.on("key_moved", (key, location, distance) => 

此后,this 将绑定到 class,您将可以访问 class 级别的道具。