ReactJS如何访问DOM元素



我有问题,我想访问具有用于在我所有方法中使用它的全局变量的DOM元素,我试图用" this.refs"访问它,但似乎仅适用于表格和输入?也许您知道一种更好的方法?这是我的一些代码:

` 从" react"中导入反应;

var isSmall = false;
var isMedium = false;
var isLarge = true;

类应用程序扩展react.component {

openIframe()
{
    var iframe = document.createElement('iframe');
    var siteUrl = document.getElementById('siteUrl').value;
    var header = document.getElementById('header');
    iframe.src = "";
    iframe.src = siteUrl;
    iframe.setAttribute('id', 'iframe');
    header.classList.add('scrollUp');
    setTimeout( function (){
        document.getElementById("iframe_append").appendChild(iframe);
    },500);
}
reloadIframe ()
{
    var iframe = document.getElementById('iframe');
    iframe.src = iframe.src;
}`
  1. 您可以在HTML元素上使用参考回调,并设置该组件的本地变量。

    input type =" file" id =" file" ref = {(input)=> {this.textinput = input;}}

并在组件中使用它

this.textInput.focus();
  1. 对于功能组件,您可以使用refs

    输入type =" file" id =" file" ref =" uploader"

并在组件中使用它

this.refs.uploader.focus();

详细信息:refs

1)您可以使用Ref回调对React组件和 dom element。这是一个参考:https://reactjs.org/docs/refs-and-the-dom

2)您应该避免全局变量。相反,您可以使用ES6模块语法导出变量,并通过导入任何其他文件中的访问。例如:

app.js

export const someVar = 'valueOfSomeVar';

一些hotherfile.js

import { someVar } from 'pathToApp.js';
console.log(someVar); // 'valueOfSomeVar'

不建议您访问react中的dom,您可以将组件制作并将其放在所需的位置中。

相关内容

  • 没有找到相关文章

最新更新