我试图根据它的索引从状态数组中删除一个Item,结果不一致:
我的组件:
<ul ref="exception-list">
{this.state.exceptions.map(function(exception, c){
return <div key={c}>
<br/>
<small><p>Time Range: <span className="slider-time">{exception.start.toString()}</span> - <span className="slider-time2">{exception.end.toString()}</span></p></small>
<div className="sliders_step1" name={c} key={c}>
<div className="slider-range" name={c} key={c} ></div>
</div>
<a onClick={this.clearOne.bind(null, c)}>clear1</a>
</div>}, this)}
</ul>
如您所见,我将c
(计数/索引)传入我的函数clearOne
:
clearOne: function(index) {
console.log("index from clearOne", index)
this.setState({exceptions: this.state.exceptions.filter((x,i) => i != index )})
},
从理论上说这应该有效,但我似乎得到了非常复杂的结果。也就是说,在所有情况下都没有正确删除正确的项目。有时候前面的索引会被删除。我做错了什么吗?如果需要,我可以提供更多信息。