#reactjs #typescript #keyboard-events
#реагирует на #машинописный текст #клавиатура-события
Вопрос:
Следующий код определяет определенные нажатия клавиш. Думайте об этом как об интерфейсе Smart TV, где все ваши взаимодействия осуществляются с помощью пульта дистанционного управления телевизором, а не мыши или сенсорного экрана. Клавиши курсора перемещают фокус, и клавиша [Enter] похожа на действие, чтобы сделать что-то в зависимости от того, что находится в фокусе. Я хотел бы создать другое действие, если клавиша [Enter] была нажата в быстрой последовательности, почти как событие двойного нажатия. До сих пор это мой код, использующий typescript React. Как я могу обнаружить двойное нажатие? Я почти уверен, что для этого требуется обратный вызов и/или использование и т. Д.
const { focused, node } = useFocusable({ focusKey, elementRef: containerRef, onBlur: () =gt; { setThumbTimeOffset(0) // setStore({ thumbTimeOffset: 0 }) }, onKeyDown: (event) =gt; { if (!playerControlsVisible) { event.stopPropagation() event.preventDefault() return } if (event.key === "ArrowLeft") { event.stopPropagation() if (store.videoElement) store.videoElement.pause() setThumbTimeOffset( clamp( thumbTimeOffset - 1, 0 - currentTime, duration - currentTime ) ) } if (event.key === "ArrowRight") { event.stopPropagation() if (store.videoElement) store.videoElement.pause() setThumbTimeOffset( clamp( thumbTimeOffset 1, 0 - currentTime, duration - currentTime ) ) } if (event.key === " " || event.key === "Enter") { event.stopPropagation() if (thumbTimeOffset !== 0 amp;amp; store.videoElement) { store.videoElement.currentTime = currentTime thumbTimeOffset } store.videoElement.play() } }, })