首页 > 解决方案 > 从外部脚本访问 React DOM 元素

问题描述

我正在尝试从外部脚本文件访问 React DOM 元素“id”。我相信我的脚本正在正确导入,因为文件中的 console.log('test') 正在工作,尽管 console.log(myDiv) 返回 null。

我如何在 React 中实现这一点?

// 零件

import './../data/script.ts';

  render() {
    return (
        <div id='targetDiv'>
          <p>{This will be populated from my external script file...}</p>
        </div>
    );
  }

// 脚本

  var myDiv = document.getElementById('targetDiv');
  console.log(myDiv);

标签: javascriptreactjstypescript

解决方案


为了解决这个问题,我需要将我的外部脚本作为一个函数导入,然后在组件安装后调用该函数:

// 零件

import { myScript } from './../data/script';

  componentDidMount() {
    {
      myScript();
    }
  }

  render() {
    return (
        <div id='targetDiv'>
          {My script now renders correctly inside the div}
        </div>
    );
  }

// 脚本

  var myDiv = document.getElementById('targetDiv');
  const d = document.createElement('p');
  myDiv.appendChild(d);

推荐阅读