реагировать на собственные функции стрелок и geoQueries - PullRequest
0 голосов
/ 07 мая 2018

Я все еще немного борюсь с функциями стрелок. Я ранее сделал эти сообщения:

Но теперь у меня возникла новая проблема с тем, как их можно использовать с 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) {

С попыткой выше ничего не срабатывает. Я не получаю «Тестовый журнал» на консоль. Там нет сбоев или ошибок, просто явно не так, как это должно быть сделано.

Кто-нибудь знает, как я могу пройти через это?

1 Ответ

0 голосов
/ 08 мая 2018

Поскольку ваша geoFire listener функция не связана , поэтому вы не можете получить доступ к реквизитам уровня класса.

Поэтому самым простым способом было бы использовать здесь функцию стрелки как

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

После этого this будет привязан к классу, и вы сможете получить доступ к реквизитам уровня класса.

...