流量错误 - 属性'包含'在EventTarget

时间:2017-10-14 18:37:11

标签: javascript reactjs flowtype

请帮助我解决此错误

if (!evt.currentTarget.contains(evt.relatedTarget)) {
                       ^^^^^^^^ property `contains`. Property not found in
if (!evt.currentTarget.contains(evt.relatedTarget)) {
     ^^^^^^^^^^^^^^^^^ EventTarget

以下是相关 Navigation.jsx 组件代码的一部分:

 class Navigation extends React.Component<Props, State> {
  state = {
    open: false
  };
  ...
  handleClickOutside = (evt: SyntheticMouseEvent<> &
                       { currentTarget: HTMLElement, relatedTarget: HTMLElement }) => {
    if (!evt.currentTarget.contains(evt.relatedTarget)) {
      this.setState({
        open: false
      });
    }
  };
  render() {
      return (
        <div className="header__bottom" onBlur={this.handleClickOutside}>
   ...

1 个答案:

答案 0 :(得分:2)

也许对某人有用: 错误发生在SyntheticEventType 所以不是行 -

handleClickOutside = (evt: SyntheticMouseEvent<> & ...

应该是

handleClickOutside = (evt: SyntheticFocusEvent<'blur'> &...

在这种情况下,存在 eventTarget contains方法。