可能有人請解釋一下如何解決這個錯誤陣營警告:flattenChildren(...):遇到兩個孩子使用相同的密鑰
警告:flattenChildren(...):遇到兩個孩子一樣 密鑰
我已經複製了下面的代碼,但由於某種原因CodePen沒有顯示錯誤。
var FilterOptions = React.createClass({
changeOption: function(type, e) {
var val = e.target.value;
this.props.changeOption(val, type);
},
render: function() {
return (
<div className="filter-options">
<div className="filter-option">
<select id="product" name="Product" value={this.props.product} onChange={this.changeOption.bind(this, 'product')}>
<option value=''>Product</option>
{this.props.productOptions.map(function(option) {
return (<option key={option} value={option}>{option}</option>)
})}
</select>
</div>
</div>
);
}
});
作爲第二個問題,我敢肯定我的復位應該重置的選擇框的值,但是這也沒有工作,只是重新渲染的結果 - 不知道這與第一個問題有關?
非常感謝任何幫助
您確定'this.props.productOptions'具有唯一值嗎?如果是這樣,那麼你確定這段代碼是給出了錯誤,而不是別的地方? –
@MartinMazzaDawson不,在所有選擇菜單中都有一些重複值 - 確切的錯誤都是這樣的 - bundle.js:9899警告:flattenChildren(...):遇到兩個具有相同鍵的孩子,'1:$ prod3 '。子鑰匙必須是唯一的;當兩個孩子分享一把鑰匙時,只有第一個孩子會被使用。 –
如果您將'key'更改爲索引值而不是'option',錯誤會消失嗎? – azium