介绍
当你需要监听一个快捷键时,通常会使用onKeyDown 事件监听器。
然而,在 twenty-front 中,你可能会遇到用于不同组件的相同快捷键之间的冲突,这些组件同时挂载。
例如,如果你有一个页面监听回车键,而一个包含选择组件的模态框也监听回车键,在所有这些组件同时挂载时可能会发生冲突。
useScopedHotkeys hook
为了解决这个问题,我们有一个自定义的 hook,可以在不产生冲突的情况下监听快捷键。
您可以将它放在组件中,它只会在组件挂载并且指定的 快捷键范围 激活时监听快捷键。
在实践中如何监听快捷键?
设置快捷键监听涉及两个步骤:- 设置将会监听快捷键的快捷键范围
- 使用
useScopedHotkeyshook 来监听快捷键
快捷键的使用案例
通常情况下,会有两种需要快捷键的使用案例:- 在页面或页面中挂载的组件中
- 在由于用户操作而获得焦点的模态组件中
在页面中监听快捷键
示例:在模态类型组件中监听快捷键
在这个示例中,我们将使用一个模态组件,该组件监听 Esc 键来告诉其父组件关闭自己。 这里用户交互正在改变范围。什么是快捷键范围?
快捷键范围是表示快捷键激活上下文的字符串。 通常编码为枚举。 当你更改快捷键范围时,监听此范围的快捷键将启用,监听其他范围的快捷键将被禁用。 一次只能设置一个范围。 例如,每个页面的快捷键范围在PageHotkeyScope 枚举中定义: