我有以下无状态组件,我使用Flow进行类型检查:
items
当我触发onChange事件时,我收到以下错误:
//@flow
import React from "react";
export const Picker = (
{ options }: { options: Object },
{ onChange }: { onChange: (e: SyntheticEvent<any>) => Function }
) => {
return (
<span>
<select onChange={e => onChange(e)}>
<option defaultValue=" ">Pick Year</option>
{options.map(year => (
<option value={year} key={year}>
{year}
</option>
))}
</select>
</span>
);
};
我做错了什么?仅供参考,如果我删除了类型检查,只需使用vanilla reactjs onChange即可。
答案 0 :(得分:0)
无状态React组件接受单个参数,“props”。但是你的函数定义需要两个参数,onChange
是作为第二个参数传递的值的属性。由于React永远不会传递第二个参数,因此永远不会设置它。
options
和onChange
都应该是第一个参数的属性,这意味着函数应该被定义为
export const Picker = (
{ options, onChange }: { options: Object, onChange: (e: SyntheticEvent<any>) => Function }
) => {
...
};