Как заставить обработчик реагировать на несколько значений? - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть обработчик, который работает не совсем так, как я хотел ... Мне нужно иметь возможность изменять значение количества многих предметов.Прямо сейчас, с моим обработчиком, если я попытаюсь с несколькими элементами, они будут обновлены с последним введенным значением.Поэтому у меня должен быть способ ввести несколько значений и обновить элементы по-разному. Вот что я сделал до сих пор:

this.state.purchase.selected.map(item => {
                                    return (
                                        <Grid item xs={4}>
                                            <OrderItemsCard
                                                item={item}
                                                onChange={this.handleSelectedItemChange}
                                            />
                                        </Grid>
                                    )
                                })
      
        this.handleSelectedItemChange = this.handleSelectedItemChange.bind(this) 
 
 handleSelectedItemChange(event) {
        let query = Object.assign({}, this.state.purchase);
        query.selected.map(item => {
            item.quantity = event.target.value
        })
        this.setState({purchase: query})
    }

1 Ответ

0 голосов
/ 30 сентября 2018

Если я правильно понимаю, вы хотите, чтобы ваша функция onChange была доступна совместно с несколькими компонентами, и был разработан способ распознавания вызывающего абонента.

Вы можете просто передать свой item до onChange и используйте его значения для определения вызывающего абонента и выполнения любых действий, которые вы хотите.

Это можно сделать следующим образом:

this.state.purchase.selected.map(item => {
  return ( 
    <Grid item xs={4}>
      <OrderItemsCard 
        item={item}
        onChange={(event) => this.handleSelectedItemChange(item, event)}
      />
    </Grid>
  );
})

handleSelectedItemChange(item, event) {
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...