我有一个返回一个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`
答案 0 :(得分:0)
问题在于React.Element&lt; *&gt;尝试推断组件的确切类型,包括其道具,但函数的两个可能的返回具有不同的道具。
如果您删除了React.Element&lt; *&gt;从您的代码中输入,流程会将其推断为更一般的JSX.Element
,这将接受这两种情况。