当我尝试从已触发的SyntheticMouseEvent访问offsetX
时,Flow抛出此错误:
[流程]无法获得
event.nativeEvent.offsetX
,因为offsetX
1中缺少属性Event
。 (参考:1)
_handleClick = (event: SyntheticMouseEvent<HTMLDivElement>): void => console.log(event.nativeEvent.offsetX);
我目前唯一的“解决方法”是将事件键入为MouseEvent
:
_handleClick = (event: MouseEvent): SyntheticMouseEvent<HTMLDivElement>
但是,如果我没记错的话,React组件中触发的事件始终是SyntheticEvent,所以我的解决方法是hack
。您知道一种更好的输入方式吗?
Flow-try(但这不会真正有用,因为未定义SyntheticMouseEvent)
答案 0 :(得分:1)
我会写event.nativeEvent.offsetX
而不是写(event.nativeEvent: MouseEvent).offsetX
(在访问MouseEvent
之前,我将本机事件强制转换为offsetX
)。
注意:MouseEvent
来自dom.js
(您不需要导入或不需要),请参见https://github.com/facebook/flow/blob/master/lib/dom.js#L284
答案 1 :(得分:-1)
offsetX不是SyntheticMouseEvent的一部分。在这里查看更多背景 https://github.com/facebook/react/pull/7011