使用键盘绑定在React

问题描述

上下文

我正在使用BlueprintJS创建具有预输入结果的自定义数据表,该结果将返回到Menu组件(请考虑使用预输入的Google表格)。我希望能够使用键盘上的箭头键浏览此菜单。当按下ArrowDown键时,我可以使菜单集中显示。然后,使用菜单上的键盘处理程序,跟踪当前所选项目的索引,并使用CSS突出显示它,使每个菜单项都准聚焦。

这里是我正在使用的示例。 Simple Input with Menu

问题

首先,此方法实际上并不关注列表项,这会破坏任何可访问性。其次,使用此方法时,由于按键处理程序仅跟踪菜单的顶级元素,因此我无法在子菜单之间切换。

潜在想法

当列表数据更改时(因为它是动态提前输入),请创建Refs对象,并将其传递给MyMenu函数,然后创建一个巧妙的按键处理程序,在每次按键导航上调用ref.current.focus()。这样可以使列表项正确地具有可访问性,但是不能确定这是否是正确的方法

问题

处理此问题的正确方法是什么?我应该考虑其他组件结构吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)