【发布时间】:2017-06-01 20:55:24
【问题描述】:
谁能解释一下如何解决这个错误
警告: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,错误会消失吗? -
错误是不言自明的,你不应该有两个具有相同键的项目。您正在寻求什么样的帮助?
标签: javascript reactjs select option