Итак, здесь я сопоставляю пункты, которые я получаю от API
{this.state.items.map(i => <Item key={i.id} expired={this.state.expired} id={i.id} img={i.img} selected={this.state.selected} name={i.name} price={i.price} getItems={this.getItems} getSelected={this.getSelected} quantity={i.quantity} />)}
Когда я выбираю элемент, появляется всплывающее сообщение, чтобы подтвердить выбор или отменить его, когда я нажимаю кнопку Отмена, яследует запустить функцию отмены, в которой я повторно отображаю исходное состояние элемента
cancel = () =>{
const initial = {
selected: false,
quantities: [],
select: "SELECT"
}
this.setState(initial);
}
Но эта функция работает только для первого элемента на странице, даже когда я щелкаю первый элемент и подтверждаю выбор, а затемвыберите другой элемент и отмените выбор, выбор просто отменяется с первого элемента, а не элемента, который я выбрал на первом месте.Я изо всех сил старался объяснить мою проблему, пожалуйста, дайте мне знать, если вам нужно больше разъяснений.
функция для обработчика кликов
select = () => {
let qua = 1;
let total = qua * this.props.price;
this.props.getSelected(true);
const newQuantity = {name: this.props.name, quantity: parseInt(qua), total: total}
const quantities = [...this.state.quantities];
quantities.push(newQuantity);
this.setState(previousState => ({
quantities : [...previousState.quantities, newQuantity]
}));
this.setState({quantity: qua, selected: true, select: "SELECTED", quantityMain: quantities, returnReason: "", returnReasonMore: "", moreInformation: ""}, ()=>{
console.log(this.state.quantityMain);
})
}