Обработка событий в ReactVR

Я экспериментировал с ReactVR, и у меня мало сомнений в обработке событий. Согласно документации в Cusors и Input, выяснить тип события так же просто, как прочитать. type события.

События, поступающие в onInput, могут быть дополнительно отфильтрованы путем проверки поля типа, которое будет одним из "MouseInputEvent", "KeyboardInputEvent", "TouchInputEvent" или "GamepadInputEvent".

Но в приведенном ниже коде event.type дает undefined,

_onInput(event) {
    console.log(event.type);//undefined
}

в конце концов я смог узнать тип события, выполнив

_onInput(event) {
    let syntheticEvent = event.nativeEvent.inputEvent;
    console.log(syntheticEvent.type);
}

Это ожидаемое поведение или я что-то упустил.

Несколько связанных вопросов

  1. Должны ли мы прослушивать события с помощью event.nativeEvent?
  2. Как мы узнаем цель мероприятия, например, если я хочу связать onInput событие в Plane, в настоящее время осматриваюevent.nativeEvent дает target как числовое значение? Совсем не полезно.
  3. Наконец, способ вызова событий в ReactJS, похоже, не работает в ReactVR. Например, в первом мы бы просто

    <Plane onInput={this._onInput} lit={true} />
    

    Но это не работает, в последнем случае мы должны

    <Plane onInput={(event) => this._onInput(event)} lit={true} />
    

    Почему это?

Примечание: у меня есть опыт с ReactJS и ZERO с React Native, я предполагаю, что ReactVR склоняется к последнему извинению, если это очевидно

1 ответ

Это происходит потому, что объект события в реакции используется повторно и сразу же очищается после того, как он выходит из области действия функции, поэтому вы должны сохранить его как переменную для дальнейшего использования.

Другие вопросы по тегам