无法从SyntheticMouseEvent获取属性offsetX

时间:2018-08-21 13:26:00

标签: flowtype flow-typed

当我尝试从已触发的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)

2 个答案:

答案 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