javascript - 当 'ref' 不可用时与 DOM 元素交互
问题描述
我需要.focus()
在 React 组件上触发一个按钮。但它来自第 3 方库,我无法使用ref
.
到目前为止,我设法做到的唯一方法是使用 setTimeout 和 querySelector,因为该元素不是立即可用的componentDidMount
。贝娄是我目前的代码:
componentDidMount() {
window.setTimeout(() => {
const confirmButton = document.querySelector('.confirmButton');
confirmButton && confirmButton.focus();
}, 1);
}
有没有其他不那么丑陋的方法来实现这一目标?
解决方案
我意识到我可以将原生道具发送到 Button 组件
- componentDidMount() {
-
- window.setTimeout(() => {
- const confirmButton = document.querySelector('.confirmButton');
- confirmButton && confirmButton.focus();
- }, 1);
- }
-
...
<Button
+ autofocus
推荐阅读
- haproxy - HaProxy 将源 IP 转发到后端服务器
- r - 多个数据框的列之间的部分匹配字符串
- sql - 消息 102,级别 15,状态 1,第 2 行 '`' SQL Server 管理工作室附近的语法不正确
- git - 创建新分支时git push origin 自动合并到master
- amazon-web-services - AWS Lightsail 上的额外存储
- docusignapi - 在 Docusign API 示例中如何调用 Get 操作方法
- python - 公式范围内插入的 openpyxl '@' 字符
- android - 如果两者都没有使用相同的电子邮件 ID 注册,我可以链接 Google 云项目和 Google Play 开发者控制台吗?
- python - SCAPY 方法似乎没有被调用
- javascript - Javascript闭包不会增加价值