javascript - 当 'ref' 不可用时与 DOM 元素交互

标签 javascript reactjs dom react-dom

我需要在 React 组件的按钮中触发 .focus()。但它来自第 3 方库,我不能使用 ref

到目前为止,我设法做到的唯一方法是使用 setTimeout 和 querySelector 😬,因为该元素在 componentDidMount 时不会立即可用。下面是我当前的代码:

componentDidMount() {

  window.setTimeout(() => {
    const confirmButton = document.querySelector('.confirmButton');
    confirmButton && confirmButton.focus();
  }, 1);
}

还有其他不那么丑陋的方法吗?

最佳答案

我意识到我可以将原生 Prop 发送到 Button 组件 😎

-  componentDidMount() {
-
-    window.setTimeout(() => {
-      const confirmButton = document.querySelector('.confirmButton');
-      confirmButton && confirmButton.focus();
-    }, 1);
-  }
-

...

<Button
+ autofocus

关于javascript - 当 'ref' 不可用时与 DOM 元素交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50918526/

相关文章:

javascript - Facebook 上的提示-许可吗?

javascript - 我可以从单独的文件中引用/加载 <datalist> 吗?

javascript - 在 React 中,有没有办法更改选中的单选输入上父 Label 标签的背景颜色?

reactjs - 如何以 Redux 形式使用 Action Creators

javascript - JQuery .click 没有按预期工作

javascript - 选择指针下方的文本

javascript - HTML Table 使用 ng-repeat 动态生成列

javascript - 在 javascript 对象中创建 "static"成员

javascript - 直接使用数组或将其分配给变量并使用它哪个更好?

javascript - 未在动态生成的元素上调用单击处理程序