如何在导出的 React 组件中注释 onChange 事件?
How should an onChange event be annotated in an exported React Component?
我有一个带有 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 对此表示抱怨,因为它是导出的 class:
Parameter `event` missing annotation
如何在 handleChange 函数中注释 event
参数?据我所知,此事件是在 JavaScript 级别生成的,并且没有任何流类型。
或者,能否将 Flow 配置为不显示这些 "missing annotation" 错误?
你可以在这里找到打字https://github.com/facebook/flow/blob/master/lib/dom.js
handleChange = (event: Event) => {
if (event.target instanceof HTMLInputElement) {
console.log(event.target.value)
}
}
我找到了另一种解决方案,使用合成事件:如下所示
onChange (event: SyntheticInputEvent<EventTarget>): void {
this.setState({ text: event.target.value })
}
我有一个带有 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 对此表示抱怨,因为它是导出的 class:
Parameter `event` missing annotation
如何在 handleChange 函数中注释 event
参数?据我所知,此事件是在 JavaScript 级别生成的,并且没有任何流类型。
或者,能否将 Flow 配置为不显示这些 "missing annotation" 错误?
你可以在这里找到打字https://github.com/facebook/flow/blob/master/lib/dom.js
handleChange = (event: Event) => {
if (event.target instanceof HTMLInputElement) {
console.log(event.target.value)
}
}
我找到了另一种解决方案,使用合成事件:如下所示
onChange (event: SyntheticInputEvent<EventTarget>): void {
this.setState({ text: event.target.value })
}