2017-03-17 3 views
1

J'ai composant où il affiche des questions. Chaque question est un composant de réaction. En appuyant sur Entrée, vous devriez passer à la question suivante. J'ai câblé onKeyPress à l'élément Div, mais l'événement est parfois capturé, et parfois non.Pouvons-nous déclencher KeyPress sur Div Tag dans réagir

<div className="-" onKeyPress={(e) => this.navigateToNext(e)}> 
    <div className="preview-head"> 
    //Other stuff here 
    </div>{/* preview-container*/} 
</div> 

navigateToNext(e) { 
    if (option.get('selected') === true && e.charCode === 13) { 
       this.goToNextQuestion(); 
    } 
} 

Quelqu'un peut-il me dire d'une autre façon de traiter ce problème.

Répondre

1

Je voudrais câbler un écouteur d'événement dans componentWillMount pour l'événement de clé et vérifier que c'est la touche d'entrée. N'oubliez pas de supprimer l'écouteur d'événement dans componentWillUnmount.

Je suppose que le problème est autour de la div ayant l'accent ou non. Si ce n'est pas le cas, l'événement de touche ne se déclenche pas sur cet élément et rien ne se passe.

+0

N'est-ce pas une mauvaise idée d'utiliser keyUp Listener? – Lakshmi

+0

Cela dépend de l'événement que vous voulez écouter. Il n'y a rien de mal à écouter pour keyup. – spirift