reactstrap, menú desplegable con entrada de búsqueda
Con el fin de beneficiar el diseño del desplegable de reacciones, quiero utilizarlo como una barra de búsqueda con los resultados mostrados en el menú desplegable. Pero el oyente de teclas por defecto que permite navegar por los resultados mediante el teclado (teclas de flecha arriba/abajo), sólo es capturado por Input, y no puede propagarlo al padre o lo que sea que esté escuchando los eventos de teclas cuando el resultado es visible.
Ahora viendo este sandbox, estoy buscando dos enfoques, ya sea agregar oyentes de eventos de teclado como comportamiento de desplegable por defecto, o personalizar el <Input type=" search"/>
.
Ahora la pregunta es cómo hacerlo. Supongo que manejar el oyente de teclas podría ser mejor.
davy.ai
Utilizando Eventos de Teclado para Mejorar el Diseño del Dropdown de Reactstrap
Para capturar los eventos de las teclas de flecha en el Dropdown de Reactstrap y habilitar la navegación a través de los resultados por teclado, podemos agregar eventos de teclado a la función de Dropdown por defecto.
useEffect
para adjuntar y retirar los eventos cuando el Dropdown se abra y cierre respectivamente.activeIndex
.activeIndex
basándonos en los eventos de teclado y mover el enfoque al artículo de desplazamiento correspondiente.Aquí está el código actualizado:
Con estos cambios, el Dropdown de Reactstrap ahora es completamente funcional como una barra de búsqueda con resultados mostrados en el menú desplegable. Uno puede navegar a través de los resultados usando las teclas de flecha hacia arriba y hacia abajo y seleccionar el ítem activo usando la tecla Enter.