Когда я сосредоточен на раскрывающемся списке, пробел не открывает раскрывающийся список

Я разрабатываю раскрывающийся список, используя Select из rebass. Когда я использую клавиатуру для навигации по странице, когда я подхожу к раскрывающемуся списку и нажимаю клавишу пробела или ввод, я хочу, чтобы раскрывающийся список открылся. Я добавил контейнер Box вокруг раскрывающегося списка и onKeyDownсобытие, которое будет напрямую принимать элемент html через ref, и при нажатии клавиши ввода или пробела открывается раскрывающийся список. Вот как это выглядит:

      <Box
onKeyDown={e => {
     if ((e.Key == "Enter" || e.keyCode == 32) && selectRef =! null && 
          selectRef.current != null) {
          selectRef.current.focus()
     }
   }}>
<Select ref={selectRef}>
....
</Select>
</Box>

Когда я перемещаюсь по странице с помощью Tab, когда фокус находится в раскрывающемся списке, если я нажимаю клавишу ввода, раскрывающийся список открывается - он работает так, как и предполагалось, но если вместо этого я нажимаю пробел, фокус раскрывающегося списка теряется, а раскрывающийся список не открывается. Если я дважды нажму на пробел, откроется раскрывающийся список. Может кто-то помочь мне с этим? Почему фокус теряется, когда я нажимаю один раз на пробел? Есть ли другой способ сделать это (открыть раскрывающийся список одним нажатием пробела)?

0 ответов

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