React-Downshift - Как предотвратить сброс клавишей Escape? - PullRequest
0 голосов
/ 09 октября 2019

Я использую React с открытым исходным кодом Downshift для создания своего собственного выпадающего меню.

Проблема, с которой я сталкиваюсь, заключается в том, что Downshift очищает выбранный элемент (и вызывает onChange callback с null) когда пользователь нажимает клавишу Escape.

Это очищает мой раскрывающийся список, даже если в моем раскрывающемся списке нет даже пустой опции.

Как я могу подавить это поведение и просто закрыть его? открытое раскрывающееся меню (если оно открыто), а не изменять значение.

1 Ответ

0 голосов
/ 09 октября 2019

Полагаю, я сам все понял: я добавил состояние с уменьшенным переопределением поведения по умолчанию:

  const stateReducer = (_, changes) => {
    switch (changes.type) {
      // Preventing from clearing value once ESC is pressed
      case Downshift.stateChangeTypes.keyDownEscape:
        return { isOpen: false };
      default:
        return changes;
    }
  };

  <Downshift stateReducer={stateReducer}>{/* your callback */}</Downshift>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...