应该如何在导出的React组件中注释onChange事件?

时间:2016-11-08 18:51:50

标签: javascript reactjs flowtype

我有一个带有onChange处理程序的React组件:

// @flow
import React, {Component} from 'react';

export default class MyList extends Component {
  handleChange = (event) => {
    // Do something with event.target.value
    // which will be the value typed in the input field.
  }

  render() {
    return (
      <input type="text" onChange={this.handleChange}> />
    );
  }
}

和Flow抱怨这个,因为它是一个导出的类: Parameter `event` missing annotation

如何在handleChange函数中注释event参数?据我所知,此事件是在JavaScript级别生成的,没有任何Flow输入。

或者,可以将Flow配置为不显示这些“缺少注释”错误吗?

2 个答案:

答案 0 :(得分:5)

我找到了另一个使用合成事件的解决方案:类似于以下内容

&#13;
&#13;
onChange (event: SyntheticInputEvent<EventTarget>): void {
  this.setState({ text: event.target.value })
}
&#13;
&#13;
&#13;

答案 1 :(得分:4)

您可以在此处找到https://github.com/facebook/flow/blob/master/lib/dom.js

的类型
handleChange = (event: Event) => {
  if (event.target instanceof HTMLInputElement) {
    console.log(event.target.value)
  }
}