来自 React 的选项元素数组的流类型



我有一个返回反应<option>元素数组的函数:

function mapOptionToValues(
element: any,
valueKey: ?string,
optionKey: ?string
): React$Element<*> {
if (!valueKey && !optionKey) {
return (
<option key={element}>
{element}
</option>
);
}
return (
<option value={element[valueKey]} key={element[valueKey]}>
{element[optionKey]}
</option>
);
}

但是我收到此错误:

<option value={element[valueKey]} key={element[valueKey]}>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `option`
24:     <option value={element[valueKey]} key={element[valueKey]}>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `value`. Property not found in
17:       <option key={element}>
^^^^^^^^^^^^^^^^^^^^^^ props of React element `option`

问题是 React.Element<*> 试图推断组件的确切类型,包括它的 Props,但函数的两个可能的返回具有不同的 Props。

如果您从代码中删除 React.Element<*> 类型,Flow 会为您推断出它作为更通用的JSX.Element,这将接受这两种情况。

最新更新