一直在尝试 ReactVR,我对处理事件几乎没有疑问。根据Cusors and 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);
}
这是预期的行为还是我错过了什么。
几个相关的问题
- 我们是否必须使用 event.nativeEvent 来嗅探事件?
- 我们如何找出事件的目标,例如,如果我要将一个
onInput
事件绑定到 aPlane
,目前正在检查event.nativeEvent
给出的target
作为一个数值?一点帮助都没有。 最后,ReactJS 调用事件的方式似乎在 ReactVR 中不起作用。例如,在前者中,我们只需
<Plane onInput={this._onInput} lit={true} />
但这不起作用,在后者我们必须
<Plane onInput={(event) => this._onInput(event)} lit={true} />
为什么是这样?
注意:我对 ReactJS 有一些 exp,对 React Native 有零,如果很明显,我猜 ReactVR 倾向于后一种赦免