javascript - 访问 React 组件中定义的变量或外部脚本
问题描述
我正在将第三方库集成到我的 React 应用程序中。他们提供了我需要添加到我的脚本<head>
:
索引.html
<head>
<script>
var externalVariable1 = externalVariable1 || {};
var externalVariable2 = externalVariable2 || {};
</script>
// tag.min.js gives value to these variables
<script async src="//example.com/tag.min.js"></script>
</head>
我需要从我的组件中访问这两个变量。我尝试了以下但我得到'externalVariable1' is not defined
错误。有什么想法吗?
MyScreen.js
import React from 'react';
const MyScreen = () => {
return (
<React.Fragment>
<div>
<h2>Hello!</h2>
</div>
<div id='myId'>
{externalVariable.push(function() { externalVariable2.display();})}
</div>
</React.Fragment>
);
}
export default MyScreen;
解决方案
如果您想从 React 组件内部访问定义在全局范围内的变量,通常可以通过window
对象访问变量来实现。
请参见下面的示例:
function App(){
return <h1>The secret is {window.secret}</h1>
}
ReactDOM.render(<App />, document.getElementById("root"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<!-- Adding some global variables outside of React -->
<script>
var secret = "hello";
</script>
<div id="root"></div>
推荐阅读
- arrays - Swift映射数组意外的参数类型
- python - 如何使倒计时显示在 tkinter 窗口而不是我的 cmd 中?
- ios - 将 CoreStore SQLiteStore 移动到另一个位置
- android - 访问mysql时无法补偿时差
- java - 无法移除 Camel Quartz 路线
- javascript - 在 DOM 中呈现表格后,AngularJS 将带有链接的单元格链接到表格中
- sql - 仅使用 select 语句模拟表
- reactjs - 无法解析 '@material-ui\core\Box' 中的 '@material-ui/styles/styled'
- java - 从项目和变量替换生成 Maven 原型
- asp.net-core-mvc - ASP.NET Core MVC 2.2 进程内托管 - 请求中止 CancellationToken 不起作用