Справочная информация, в настоящее время я работаю над приложением Food Truck Finder, основанным на React. В реакции, насколько я понимаю, если вы хотите изменить значение в состоянии, вы должны иметь прослушиватель, такой как:
handleTruckTypeChange = (idx) => (e) => {
const newTrucks = this.state.data.map((truck, sidx) => {
if (idx !== sidx) return truck;
return { ...truck, type: e.target.value };
});
this.setState({ data: newTrucks });
}
, который отлично работает для некоторых других моих значений в таблице, но у меня есть большой объект для моего объекта расписания. Он обрабатывает десятки значений, и я не хочу писать специальный слушатель событий для каждого из них. Кроме того, у меня есть массив этих объектов расписания, использующих в качестве индекса idx. например, каждый день имеет значения startTime, endTime, openClosed и cost.
Есть ли способ, которым они могут быть обработаны одним и тем же слушателем событий, поэтому я не делаю 7 копий одной и той же функции для обработки каждого изменения?
пример того, как я вызов onChange.
<td>
<FormControl className={classes.margin}>
<InputLabel htmlFor="openClosed">O/C</InputLabel>
<NativeSelect
id="openClosed"
value={this.state.schedule[idx].monOpen}
onChange={this.handleScheduleChange(idx)}
input={<BootstrapInput />}
>
<option aria-label="None" value="" />
<option value={"0"}>Open</option>
<option value={"1"}>Closed</option>
</NativeSelect>
</FormControl>
</td>