2017-09-26 11 views
3

J'ai fait des expériences avec ReactVR et j'ai quelques doutes sur la gestion des événements. Selon la documentation de Cusors and Input, trouver le type d'événement est aussi facile que de lire type de l'événement.Gestion des événements dans ReactVR

Les événements à venir en onInput peuvent encore être filtrés en inspectant le champ de type , qui sera l'un des 'MouseInputEvent', 'KeyboardInputEvent', 'TouchInputEvent', ou 'GamepadInputEvent'

Mais dans le code ci-dessous event.type donne undefined.

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

i a finalement été en mesure de renifler le type d'événement en faisant

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

Est-ce le comportement attendu ou me manque quelque chose i.

Peu de questions liées

  1. Devons-nous renifler les événements avec event.nativeEvent?
  2. Comment pouvons-nous trouver la cible de l'événement, par exemple, si je suis à lier un événement onInput à un Plane, inspecter actuellement le event.nativeEvent donne la target en tant que valeur numérique? Pas utile du tout.
  3. Enfin, la façon ReactJS d'appeler des événements ne semble pas fonctionner dans ReactVR. Par exemple, dans l'ex-nous simplement

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

    Mais ce travail ne marche pas, dans ce dernier nous devons

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

    Pourquoi est-ce?

Note: J'ai quelques exp avec ReactJS et ZERO avec React Native, je devine ReactVR incline vers ce dernier pardon s'il est évident

Répondre

0

Cela se produit parce que l'objet de l'événement dans React est réutilisé et obtient immédiatement vidé après qu'il sort de la portée de la fonction, donc vous devez le stocker comme une variable pour une utilisation ultérieure.

+0

erm ... mais il n'a pas encore quitté la portée de la fonction, donc ne devrait-il pas être accessible dans le _onInput()? La question est plus de pourquoi nous accédons au type d'événement de cette manière comme décrit dans la question. – semuzaboi

+0

Il est bien décrit dans les docs: https://facebook.github.io/react/docs/events.html –