2017-09-26 9 views
3

ReactVR을 실험 해본 결과 이벤트 처리에는 의심의 여지가 없습니다. Cusors and Input의 설명서에 따르면 이벤트의 유형을 알아내는 것은 이벤트 type을 읽는 것만 큼 쉽습니다.ReactVR의 이벤트 처리

onInput에 들어오는

이벤트 더 'MouseInputEvent', 'KeyboardInputEvent', 'TouchInputEvent', 또는 중 하나가 될 것입니다 유형 필드를 검사하여 필터링 할 수 있습니다 'GamepadInputEvent'

그러나 아래 코드 event.typeundefined입니다.

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

내가이 예상되는 행동인가, 아니면 내가 뭔가를 놓친 거지 결국

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

를 수행하여 이벤트 유형을 도청 할 수 있었다.

거의 관련 질문

  1. 우리가 event.nativeEvent 이벤트를 도청해야합니까? 내가 현재 event.nativeEvent가 수치 값으로 target를 제공 검사하는 PlaneonInput 이벤트 바인딩입니다 경우
  2. 우리는 어떻게 예를 들어, 이벤트의 대상을 찾을 수 있습니까? 아니 전혀 도움이되지 않습니다.
  3. 마지막으로 이벤트를 호출하는 ReactJS 방법은 ReactVR에서 작동하지 않습니다. 예를 들어, 이전에 우리는 단지

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

    하지만이 나던 작업, 후자에 우리는

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

    이 왜해야?

참고 :이 반응에서 이벤트 객체를 다시 사용하기 때문에이 문제가 발생

답변

0

명백한 경우 내가 기본 반응과 함께 일부 ReactJS과 특급 및 ZERO가, 내가 ReactVR을 추측하고하는 것은 후자의 사면으로 경사 함수 범위를 벗어나면 즉시 플러시됩니다. 따라서 나중에 사용할 수 있도록 변수로 저장해야합니다.

+0

erm ... 아직 함수 범위를 벗어나지 않았으므로 _onInput() 내부에서 액세스 할 수 없습니까? 문제는 질문에 설명 된대로 이러한 방식으로 이벤트 유형에 액세스하는 이유에 더 가깝습니다. – semuzaboi

+0

문서에 잘 설명되어 있습니다. https://facebook.github.io/react/docs/events.html –