确定React`onFocus`事件是否由Mouse,Keyboard,Programmatic触发?

时间:2017-10-28 18:36:19

标签: javascript reactjs ecmascript-6

因为React只是说event.typefocus我不确定我能做些什么来确定这一点。

只有在鼠标没有启动焦点时才需要运行一些代码。

感谢您提供任何提示

2 个答案:

答案 0 :(得分:1)

我认为你应该使用鸭子打字,例如只有MouseEvents有pageX,pageY属性,所以

if (e.pageX || pageY) -> MouseEvent 

键盘事件具有区域设置,位置

if (e.locale || location) -> KeyboardEvent 

您可以在官方文档中找到所有差异:https://reactjs.org/docs/events.html#supported-events

答案 1 :(得分:0)

使用仅适用于键盘的其他一些事件。查看另一篇文章:Differentiate between focus event triggered by keyboard/mouse

对于React,您想要使用onKeyDown或onKeyPress。您可以在此处查看以下活动:https://reactjs.org/docs/events.html#keyboard-events