我有一个可以通过按按钮删除的项目列表,如所附的屏幕截图所示。
第一次删除任何项目都可以,但是当我尝试删除另一个项目时,它将无法正常工作,因为组件从先前删除的项目中接收了数据。
这是我的代码:
父组件
onDeleteClick(config, e) {
// it removes the item at the first time
// on the second try the received config parameter is the same as before
this.props.deleteConfigAction(config.configId)
.then(res => {
...
})
.catch(err => {
console.log(err)
})
}
<Flexbox marginTop='20px' flexDirection='column'>
{this.state.configurations.map((config, index) => {
let boundDeleteClick = this.onDeleteClick.bind(this, config);
return (
<ConfigCardView
key={`item-${index}`}
handleRemove={boundDeleteClick}/>
)
})}
</Flexbox>
ConfigCardView
组件:
...
<button onClick={(e, config) => this.props.handleRemove()}>Delete</button>
...
我不知道自己想念什么...
更新
我已通过删除项目后更新configurations
状态属性来解决此问题:
this.props.deleteConfigAction(config.configId)
.then(res => {
...
this.setState({configurations: newData})
})