Как получить доступ к обработчику onKeyDown значка клавиатуры DatePicker для материалов-пользовательского интерфейса?

У меня есть таблица материалов со строками с компонентами DatePicker Material -UI-Pickers в последнем столбце. введите описание изображения здесь

Мне нужно добавить новую строку в таблицу при нажатии клавиши табуляции, когда фокус находится на значке клавиатуры DatePicker. Для этого я думаю, что необходимо получить доступ onKeyDown обработчик значка клавиатуры DatePicker.

Как получить доступ onKeyDown обработчик значка клавиатуры DatePicker?

Я добавил проблему в репозиторий git-репозитариев материалов по этому поводу.


Я пытался добавить onKeyDown обработчик DatePicker составная часть. Но это приведет к добавлению новой строки в обоих случаях: нажатие клавиши первой вкладки, когда фокус находится на строке даты, и нажатие клавиши второй вкладки, когда фокус находится на значке.

<DatePicker
    id={id}
    keyboard
    ...
    onKeyDown={(e, index) => {
        if (e.keyCode === 9 && this.props.itemData.rows.length - 1 === index) {
            console.log('Tab key pressed');
            this.props.addNewItemDataRow();
        }
    }}
/>

2 ответа

Ты можешь использовать KeyboardIconProps

<DatePicker
  KeyboardIconProps={{
    onKeyDown: () => console.log('hey') 
  }}
/>

Для более поздних версийDatePicker(в данном случае v6.10.1) API DatePicker

Мы можем использоватьSlotProps:

      <DatePicker
  slotProps={{
    textField: {
      onKeyDown: (event) => console.log('Key pressed', event.key),
    },
  }}
/>
Другие вопросы по тегам