
介紹
當您需要監聽快捷鍵時,通常會使用onKeyDown 事件監聽器。
然而,在 twenty-front 中,您可能會遇到在不同組件中使用相同快捷鍵的衝突,且這些組件同時加載。
例如,如果您有一個頁面在監聽 Enter 鍵,而一個模態框也在監聽 Enter 鍵,而該模態框內部還有一個 Select 組件在監聽 Enter 鍵,那麼當所有這些組件同時加載時,您可能會遇到衝突。
useScopedHotkeys 鉤子
為了解決這個問題,我們提供了一個自定義鉤子,使其能夠在沒有任何衝突的情況下聽取快捷鍵。
您可以將其放在組件之中,該鉤子將只在組件加載並且指定的 快捷鍵作用域 啟用時監聽快捷鍵。
實際上如何監聽快捷鍵?
設置快捷鍵監聽涉及兩個步驟:- 設置將監聽快捷鍵的快捷鍵作用域
- 使用
useScopedHotkeys鉤子來監聽快捷鍵
快捷鍵的用例
一般來說,您將有兩種需要快捷鍵的用例:- 頁面內或加載在頁面中的組件
- 因用戶操作而獲得焦點的模態框組件
在頁面中監聽快捷鍵
示例:在模態框型組件中監聽快捷鍵
在此示例中,我們將使用一個監聽 Escape 鍵的模態組件來告知其父組件關閉它。 這裡用戶交互會更改範圍。什麼是快捷鍵範圍?
快捷鍵範圍是一個字串,表示快捷鍵啟用的上下文。 一般來說,它被編碼為一個枚舉。 當您更改快捷鍵範圍後,聽取該範圍的快捷鍵將被啟用,而其他範圍的快捷鍵將被禁用。 您一次只能設置一個範圍。 例如,各頁面的快捷鍵範圍定義在PageHotkeyScope 枚舉中: