流动型反应
问题描述:
我已经返回的数组的函数反应<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 < *>试图推断组件的确切类型,包括它的道具,但你的函数的两个可能的回报有不同的道具。
如果您从代码中删除React.Element < *>类型,流程将会为您推断为更一般的JSX.Element
,它将接受这两种情况。