reactjs - 运行 onKeyDown 函数时转到 NavLink
问题描述
我有一个<NavLink />
我正在努力满足可访问性标准的东西。此链接在当前页面中打开一个新组件。
我希望在按下“输入”键时访问 NavLink。
在我的 NavLink 中,我有以下 onKeyDown:
onKeyDown={() => {
this.toggleViaEnter('1'); // '1' refers to section 1
}}
我希望它采用一个参数,即节号,以及事件,因为我只想在按键为enter时切换此部分。
这是我的功能:
toggleViaEnter(tab, event) {
console.log('char', event.keyCode);
if(event.keyCode === 13) {
this.toggle(tab);
}
}
我正在尝试注销 keyCode 以便我可以看到它是“13”,但是在我的控制台中我得到:
未捕获的类型错误:无法读取未定义的属性“keyCode”
我认为这意味着我没有将事件传递给toggleViaEnter
- 我不确定如何将包括事件在内的多个参数传递给函数。
解决方案
您没有将事件传递给toggleViaEnter
. 为此,请更新onKeyDown
以获取事件并通过它
onKeyDown={event => {
this.toggleViaEnter('1', event); // '1' refers to section 1
}}
您还可以更新toggleViaEnter
以返回一个像这样的函数
toggleViaEnter = tab => event => {
console.log('char', event.keyCode);
if(event.keyCode === 13) {
this.toggle(tab);
}
}
你会更新onKeyDown
为
onKeyDown={this.toggleViaEnter('1')}
推荐阅读
- pgadmin-4 - PG Admin 4 恢复 Windows 秩序
- http - Nginx MP3 下载 206 部分内容 HTTP 响应
- parallel-processing - 如何在 Erlang 中实现以下循环?
- javascript - 单击按钮时该功能不起作用
- reactjs - 在 React Native / Snap Carousel 中记录用户交互 - firstItem
- firebase - 对象“mAuth”和“mCallbacks”中的 Firebase 身份验证错误
- python - 无头 GCP Ubuntu 上的 Chromedriver 因“无法连接到渲染器”而崩溃
- python - Python subprocess.Call() 带空格参数,如“-charset FileName=latin”
- c - 将函数的返回值存储为 C 中的结构体数组
- html - 如何从祖父母那里继承 CSS 属性