Как изменить имя ввода с помощью материалов-пользовательского интерфейса?

При интеграции материалов-ui-pickers отсюда https://material-ui-pickers.firebaseapp.com/usage с моментом. Я получаю только объект Moment в моем обработчике на onChange вместо входных данных с именем и значением (e.target имеет имя и значение в конкретном входе). Кто-нибудь может подсказать, как я могу узнать, какие входные данные были изменены в моей форме и иметь около 10 входных данных в моей форме?

2 ответа

Вы также можете использовать onInputChange двигательный Диспетчерская дата обновления при каждом нажатии клавиши

<DatePicker
  onInputChange=((e) => console.log(e.target.value))
/>

При рендеринге ваших входов вы должны предварительно сконфигурировать то, что будет отправлено каждой функции обработки изменений:

{['A', 'B', 'C',...].map(key => <DatePicker key={key} value={selectedDate} onChange={this.handleDateChange(key)} />}

Теперь вы можете создать функцию обработки, способную принимать 2 набора параметров, один для ключа, а другой для события:

handleDateChange = key => date => {
    this.setState({ [key]: date });
};

Теперь, используя вычисленные параметры, вы можете динамически устанавливать значение в своем состоянии, не зная заранее, какое из них.

Другие вопросы по тегам