<Button className={placeTime.length > 1 ? styles.delBtn : styles.delFirst}
onClick={this.onRemove (index)}>
<Icon type={'delete'}/>刪除
</Button>
)
onRemove = (index) => {
const { placeTime } = this.state
console.log(placeTime, index);
placeTime.splice(index, 1)
this.setState({
placeTime
})
}
---------------------
刪除按鈕綁定的
onRemove點擊事件,想要帶着參數index去執行,但這種操作是不允許的,剛好在事件函數中也有setState操作,這樣就會陷入到
死循環中,不停的改變state,render()又不停的被執行。
解決方案
// 一
<Button className={placeTime.length > 1 ? styles.delBtn : styles.delFirst}
onClick={()=>this.onRemove (index)}>
<Icon type={'delete'}/>刪除
</Button>
// 二
<Button className={placeTime.length > 1 ? styles.delBtn : styles.delFirst}
onClick={this.onRemove .bind(this,index)}>
<Icon type={'delete'}/>刪除
</Button>
