2017-08-25 43 views
0

我已經返回的數組的函數反應<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

的問題是React.Element < *>試圖推斷組件的確切類型,包括它的道具,但你的函數的兩個可能的回報有不同的道具。

如果您從代碼中刪除React.Element < *>類型,流程將會爲您推斷爲更一般的JSX.Element,它將接受這兩種情況。