无法从 SyntheticMouseEvent 获取 属性 offsetX
Cannot get property offsetX from SyntheticMouseEvent
当我尝试从触发的 SyntheticMouseEvent 访问 offsetX
时,Flow 抛出此错误:
[flow] Cannot get event.nativeEvent.offsetX
because property offsetX
is missing in Event
1. (References: 1)
_handleClick = (event: SyntheticMouseEvent<HTMLDivElement>): void => console.log(event.nativeEvent.offsetX);
我现在唯一的 'workaround' 是将事件键入 MouseEvent
:
_handleClick = (event: MouseEvent): SyntheticMouseEvent<HTMLDivElement>
但是如果我没记错的话,React 组件中触发的事件总是 SyntheticEvent,所以我的解决方法是 hack
。你知道更好的输入方式吗?
Flow-try(但这不会真正有用,因为未定义 SyntheticMouseEvent)
我不会写 event.nativeEvent.offsetX
,而是写 (event.nativeEvent: MouseEvent).offsetX
(我在访问 offsetX
之前将本机事件转换为 MouseEvent
)。
注意:MouseEvent
来自 dom.js
(您不需要导入或要求),参见 https://github.com/facebook/flow/blob/master/lib/dom.js#L284
offsetX 不是 SyntheticMouseEvent 的一部分。在此处查看更多上下文
https://github.com/facebook/react/pull/7011
当我尝试从触发的 SyntheticMouseEvent 访问 offsetX
时,Flow 抛出此错误:
[flow] Cannot get
event.nativeEvent.offsetX
because propertyoffsetX
is missing inEvent
1. (References: 1)
_handleClick = (event: SyntheticMouseEvent<HTMLDivElement>): void => console.log(event.nativeEvent.offsetX);
我现在唯一的 'workaround' 是将事件键入 MouseEvent
:
_handleClick = (event: MouseEvent): SyntheticMouseEvent<HTMLDivElement>
但是如果我没记错的话,React 组件中触发的事件总是 SyntheticEvent,所以我的解决方法是 hack
。你知道更好的输入方式吗?
Flow-try(但这不会真正有用,因为未定义 SyntheticMouseEvent)
我不会写 event.nativeEvent.offsetX
,而是写 (event.nativeEvent: MouseEvent).offsetX
(我在访问 offsetX
之前将本机事件转换为 MouseEvent
)。
注意:MouseEvent
来自 dom.js
(您不需要导入或要求),参见 https://github.com/facebook/flow/blob/master/lib/dom.js#L284
offsetX 不是 SyntheticMouseEvent 的一部分。在此处查看更多上下文 https://github.com/facebook/react/pull/7011