Semanti c UI React - не вызывать onChange, пока открыт раскрывающийся список параметров - PullRequest
0 голосов
/ 18 января 2020

У меня есть раскрывающийся список semanti c на ReactJS, и я хочу вызвать событие onChange только тогда, когда пользователь действительно выбирает параметр, а не когда список параметров все еще отображается.

Позвольте мне объяснить:

Раскрывающийся список создается следующим образом:

<Dropdown
  placeholder='Select language'
  fluid
  search
  selection
  options={options}
  onChange={...}
/>

, который выглядит так:

enter image description here

При нажатии на него открывается (выпадает?) Список параметров:

enter image description here

Проблема заключается в что при использовании стрелок вниз до go для требуемой опции, срабатывает onChange каждый раз, когда вы нажимаете стрелку вниз. В этом случае, чтобы достичь Aragones, он запускает onChange 4 раза.

enter image description here

Я хочу запускать onChange только тогда, когда список опций закрывается , а не 3 предыдущих раза, когда пользователь не хотел выбирать какое-либо значение:

enter image description here

Интуитивно для меня, пользователь хочет выбрать значение только тогда, когда он нажал ввод, или щелкнул в опции, или щелкнул вне параметров, чтобы закрыть список опций. В противном случае она просто просматривает. Но я не хотел бы писать отдельных слушателей для всех этих случаев.

В моем случае выбор опции имеет много последствий, поэтому я хочу знать, когда пользователь действительно хочет это сделать. Как я могу это сделать?

В качестве альтернативы, я могу прослушать, чтобы показать или скрыть события для списка опций? или спросите в onChange, отображается ли список опций или скрыт?

Спасибо!

1 Ответ

1 голос
/ 18 января 2020

С https://react.semantic-ui.com/modules/dropdown/,

selectOnNavigation true {bool}
Изменять или нет значение при навигации по меню с помощью клавиш со стрелками. Для установки значения false потребуется ввести или щелкнуть левой кнопкой мыши, чтобы подтвердить выбор.

...