onKeyDown 没有响应
onKeyDown is non responsive
使用 Material-UI
Table
我有这个:
<Table
onKeyDown={event => console.log(event)}>
<TableBody>
...
</TableBody>
</Table>
当我用鼠标单击 table 然后开始单击向上和向下箭头键时,控制台中没有任何记录。我已经尝试将 onKeyDown
放在 TableBody
以及我的应用程序的整个父级 div
上,但没有任何运气。
帮助?
这可能是因为您的 table 无法聚焦。所以永远不会触发 onKeyDown。
您可以添加 tabIndex 使其可聚焦,但请确保您内部没有其他可聚焦元素,否则它们将优先。
<Table
tabIndex='123'
onKeyDown={event => console.log(event)}>
<TableBody>
...
</TableBody>
</Table>
所以,Material-UI Table
没有 onKeyDown
属性,但是,它的 docs 确实说:
Any other properties supplied will be spread to the root element
(native element).
假设 "root element" 是 table
,那么您缺少的是 tabIndex
道具。
来自 related SO post:
You need to set tabindex
property (eg tabindex="1"
) to some value, so
it can identify that this table is keyboard selectable. That allows
the keyboard event to be triggered.
使用 Material-UI
Table
我有这个:
<Table
onKeyDown={event => console.log(event)}>
<TableBody>
...
</TableBody>
</Table>
当我用鼠标单击 table 然后开始单击向上和向下箭头键时,控制台中没有任何记录。我已经尝试将 onKeyDown
放在 TableBody
以及我的应用程序的整个父级 div
上,但没有任何运气。
帮助?
这可能是因为您的 table 无法聚焦。所以永远不会触发 onKeyDown。
您可以添加 tabIndex 使其可聚焦,但请确保您内部没有其他可聚焦元素,否则它们将优先。
<Table
tabIndex='123'
onKeyDown={event => console.log(event)}>
<TableBody>
...
</TableBody>
</Table>
所以,Material-UI Table
没有 onKeyDown
属性,但是,它的 docs 确实说:
Any other properties supplied will be spread to the root element (native element).
假设 "root element" 是 table
,那么您缺少的是 tabIndex
道具。
来自 related SO post:
You need to set
tabindex
property (egtabindex="1"
) to some value, so it can identify that this table is keyboard selectable. That allows the keyboard event to be triggered.