
Introduzione
Quando hai bisogno di ascoltare un tasto di scelta rapida, normalmente useresti l’eventoonKeyDown.
In twenty-front, tuttavia, potresti avere conflitti tra gli stessi tasti di scelta rapida che sono utilizzati in componenti diversi, montati nello stesso momento.
Ad esempio, se hai una pagina che ascolta il tasto Invio, e una modale che ascolta lo stesso tasto, con un componente Select all’interno della modale che ascolta il tasto Invio, potresti avere un conflitto quando tutti sono montati contemporaneamente.
L’hook useScopedHotkeys
Per gestire questo problema, abbiamo un hook personalizzato che rende possibile ascoltare i tasti di scelta rapida senza alcun conflitto.
Lo posizioni in un componente, e ascolterà i tasti solo quando il componente è montato E quando l’ambito del tasto di scelta rapida specificato è attivo.
Come ascoltare i tasti di scelta rapida nella pratica?
Sono coinvolti due passaggi nell’impostazione dell’ascolto dei tasti di scelta rapida:- Imposta l’ambito del tasto di scelta rapida che ascolterà i tasti di scelta rapida
- Usa l’hook
useScopedHotkeysper ascoltare i tasti di scelta rapida
Casi d’uso per i tasti di scelta rapida
In generale, avrai due casi d’uso che richiedono tasti di scelta rapida:- In una pagina o un componente montato in una pagina
- In un componente di tipo modale che prende il focus a causa di un’azione dell’utente
Ascoltare i tasti di scelta rapida in una pagina
Esempio:Ascoltare i tasti di scelta rapida in un componente di tipo modale
Per questo esempio utilizzeremo un componente modale che ascolta il tasto Esc per segnalare al suo genitore di chiuderlo. Qui l’interazione dell’utente sta cambiando l’ambito.Che cos’è un ambito del tasto di scelta rapida?
Un ambito del tasto di scelta rapida è una stringa che rappresenta un contesto in cui i tasti di scelta rapida sono attivi. È generalmente codificato come un enum. Quando cambi l’ambito del tasto di scelta rapida, i tasti di scelta rapida che ascoltano questo ambito saranno abilitati e i tasti che ascoltano altri ambiti saranno disabilitati. Puoi impostare solo un ambito alla volta. Ad esempio, gli ambiti dei tasti di scelta rapida per ogni pagina sono definiti nell’enumPageHotkeyScope: