когда и когда не использовать «this» в справочнике по функциям обработчика событий JSX? - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь сделать это руководство по тегированию ReactJS .

Я на полпути, и мой код в Codepen здесь .(Я оставляю это перо как есть, и больше не буду вносить в него изменения.)

Как вы можете видеть, в какой-то момент в коде мой обработчик событий в JSX выглядит следующим образом:

onKeyUp={this.onKeyUp}

и в другом месте это выглядит так:

onClick={onDeleteTag}

Мой вопрос: почему this. был необходим в первом случае, а не во втором?

1 Ответ

0 голосов
/ 11 декабря 2018

this необходимо, если вы пытаетесь сослаться на функцию / значение, которое находится вне области текущей функции (render() в вашем случае), но все еще инкапсулировано в объекте или классе.

const foo = () => 'foo';

class Clazz {

    otherFunc() {
        return 'otherFunc';
    }

    render() {
        const bar = () => 'bar';

        bar() // can call directly

        this.otherFunc() // necessary as it's a "sibling" function

        foo(); // not necessary as it's a global function in this module's scope
    }
}
...