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

时间:2017-08-25 15:01:00

标签: reactjs flowtype

我有一个返回一个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`

1 个答案:

答案 0 :(得分:0)

问题在于React.Element&lt; *&gt;尝试推断组件的确切类型,包括其道具,但函数的两个可能的返回具有不同的道具。

如果您删除了React.Element&lt; *&gt;从您的代码中输入,流程会将其推断为更一般的JSX.Element,这将接受这两种情况。