javascript - React modal - 如何使用 tab 键停止用户
问题描述
我正在尝试在 React 中创建自己的简单模式,它显示了一个覆盖屏幕的灰色覆盖层,顶部有一个带有 OK 和 Cancel 按钮的框。
然而,我在网上看到的所有示例代码(包括 React 和普通 JS/jQuery)都存在同样的问题:当模式显示在屏幕上时,用户可以使用 tab 键访问“变灰”的控件" 通过覆盖,从而规避模态。
我已经看到了一些关于安装全局按键事件处理程序以在模式打开时丢弃键盘输入的建议,但这听起来有点笨拙,并且与 React 基于组件的性质不符。有没有更清洁的方法?
解决方案
在考虑了更多之后,我开始质疑这个要求的真正好处是什么。
我试图通过使其进入不应该处于的状态来阻止用户弄乱 UI(甚至可能是后端),但在我的情况下,他可以使用同时打开 2 个窗口来实现相同的结果,并且不能做任何危险的事情,所以我决定忍受它。
推荐阅读
- php - 如何检查在 PHP 中提交的表单
- c++ - C++ If/Else 语句被跳过
- python - 当映射不是一对一时,ctypes 如何将 C 结构成员映射到 Python 类_fields_?
- reactjs - 似乎无法使用 Expo 的 Font.loadAsync 加载自定义字体
- spring - 使用spring cloud gateway路由grpc流量
- html - 如何将 a 标签的文本移动到导航栏的中间
- python-3.x - 在 Python gtk mate applet 中,PC 不活动 10 分钟后 GTK ToolButton 文本停止显示
- node.js - 如何使用 webpack 打包节点程序
- c# - 通过未分配(未知)组件访问协程
- c# - 如何获取发送到 azure IoT hub c# 的设备总数和消息总数