Я новичок в реагировании. Я пытаюсь использовать множественный выбор, используя контроль формы.
Ниже мой код:
handleIds(e){
let id = null;
if(e.target.value) {
id = parseInt(e.target.value, 10);
} else {
id = null
}
this.state.Ids.push(id);
}
<FormGroup controlId="formQueryIds"
validationState = {this.validateNotEmpty(this.state.queryIds)}>
<ControlLabel>Query Ids</ControlLabel>
{this.loadQueries()}
<FormControl componentClass="select"
placeholder="Select ids"
onChange={this.handleIds}
multiple>
{this.state.items.map((item) => <option key={item.id}>{item.id}</option>)}
</FormControl>
<FormControl.Feedback />
</FormGroup>
Здесь items - это массив идентификаторов, который динамически предоставляет значения параметров.
Проблема здесь в следующем: для каждого отдельного выбора опции он запускает handleIds и добавляет значение в массив Ids [].
Но когда мы отменяем выбор опции, которую мы уже выбрали, я не могу вызвать handleIds и удалить значение из массива.
Есть ли способ спроектировать удаление значения из массива, как только оно не будет выбрано, или вместо того, чтобы вызывать handleIds для каждого выбора, просто вызывать один раз и предоставлять все выбранные значения в виде массива?