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