Допустим, вы держите дочерние компоненты в списке. Вы можете получить его в государстве.
inputList: []
Допустим, на родительском компоненте есть кнопка для добавления дочерних компонентов. Его код будет выглядеть примерно так.
<div>
<Button variant= "light" className="button" onClick={this.onAddAnotherBtnClick}>
Add Another
</Button>
{this.state.inputList.map(function(input, index) {
return input;
})}
</div>
(Возможно, вам придется привязать onAddAnotherBtnClick следующим образом). В состоянии
this.onAddAnotherBtnClick = this.onAddAnotherBtnClick.bind(this);
onAddAnotherBtnClick выглядит следующим образом.
onAddAnotherBtnClick = (event) =>{
const inputList = this.state.inputList;
this.setState({
inputList: inputList.concat(<ChildComponent Id={inputList.length}
callbackDeleteButton={this.delete}/>)
});
}
Это метод удаления.
delete = (Id) => {
delete this.state.inputList[Id];
this.setState({ inputList : this.state.inputList });
}
Это кнопка Удалить на дочернем компоненте.
<Button variant= "light" className="button" onClick={this.onDeleteButtonClick}>
Delete
</Button>
Вот метод onDeleteButtonClick.
onDeleteButtonClick = () => {
this.props.callbackDeleteButton(this.state.Id);
}
(Вы должны будете связать метод в State следующим образом).
this.onDeleteButtonClick = this.onDeleteButtonClick.bind(this);
Здесь происходит то, что я отправляю идентификатор каждому дочернему компоненту, когда он создается на подпорках. При нажатии кнопки удаления дочернего компонента он отправляет свой идентификатор родителю с помощью метода обратного вызова, предоставленного родителем.