我使用创建了一个react应用create-react-app my- app
。我有一个现有的网页,并且react应用程序按正常方式附加到html页面内的div。
该网页具有一些全局javascript常量const1
,const2
这是React应用程序运行所必需的。有什么办法可以将这些变量传递给react应用吗?结构如下
<script type="text/javascript">
const const1 = "1234";
const const2 = "5678";
</script>
<script type="text/javascript" src = "/static/react-app.js" ></script>
我正在努力,因为javascript当然在构建阶段会被精简,因此任何声明如下:
class App extends React.Component{
constructor(props) {
super(props);
this.state = {
stat1: const1,
stat2: const2,
由于变量被重写而无法正常工作。我试图偷偷摸摸,并使用eval如下
const const1 = eval("function c1(){console.log(const1);return const1;};c1();");
但是评估(和console.log)返回未定义。有没有一种方法可以调用react组件,并从外部将其传递给变量?
我在这里看到两个选择。
window
对象使用window
对象
要使用该window
对象,请将变量声明为
myVar = 'someString'
要么
window.myVar = 'someString'
在这两种情况下,您都将使用来访问React中的变量window.myVar
。这是一个简单的例子:
class App extends React.Component {
render() {
return (
<div>
<h1>Hello, React and ES6!</h1>
<p>Let's play. :)</p>
<p>{window.myVar}</p>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("app"));
html,
body {
height: 100%;
}
body {
display: flex;
justify-content: center;
align-items: center;
font-family: Helvetica Neue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
<script>
window.myVar = 'someString2'
</script>
使用环境变量
Create React
App构建允许在应用程序内使用环境变量。要添加环境变量.env
,请在项目的根目录中创建一个文件,然后添加适当的变量,并在变量名前添加REACT_APP_
。例如:
REACT_APP_MYVAR = "someString"
在应用程序中,可以使用在组件内部{process.env.REACT_APP_MYVAR}
或通过HTML在HTML中访问这些变量%REACT_APP_MYVAR%
。
问题内容: 我有一个调用file.sql的shell脚本 我正在寻找一种将一些参数传递给我的file.sql的方法。 如果我没有将具有某个值的变量传递给sql脚本,则将不得不使用SELECT语句创建多个.sql文件,并且所有更改将只需要几个字即可。 我的shell脚本调用file.sql: 这就是我的file.sql的样子: 我可以修改我的shell脚本,以便它传递变量名吗? 即:模型=“建筑”,
问题内容: 如何将值从javascript变量传递到razor变量,asp.net mvc razor视图引擎是否可能? 问题答案: 你不能 原因是他们不在同一时间“生活”。Razor变量是“服务器端变量”,在将页面发送到“客户端”后,它们不再存在。 当服务器收到视图请求时,它仅使用HTML,CSS和Javascript代码创建视图。没有C#代码,所有这些都被“翻译”为客户端语言。 当视图仍在服务
问题内容: 我有这个代码: 先前已定义。我做了任何事情来设置价值,但它只在内部起作用 如何将其传递给外部范围? 问题答案: 您有几种方法可以解决从异步函数内部返回值的问题。其中之一是将异步网络调用包装在一个函数中,并使其返回一个completionHandler。 一些一般性建议:除非您100%确信不会将可选值设为,否则请勿使用强制展开。对于网络请求,即使没有错误,也可以为零,因此切勿强行展开,请
问题内容: 我正在使用收缩路线https://npmjs.org/package/shrinkroute在nodejs中建立链接。我收到错误500 ReferenceError:收缩器未定义 如何将rinkeroute传递给routes / index.js?有没有更好的方法通过传递查询字符串args创建url? 问题答案: 一种解决方案是使用以下方法存储在您的应用程序对象中: 在中,您可以通过或
我有这样一个shell脚本(在/usr/local/bin/esm script/import master.php中): 现在我通过这样的PHP脚本调用它: 但是,当我运行PHP代码时,我会在浏览器上看到以下消息: 我不是一个编写shell脚本的人,所以我不知道我是否遗漏了什么。 我检查了带有sql文件的文件夹是否具有正确的权限(775)和数据(插入语句)。 那么为什么这不起作用呢?非常感谢您的
问题内容: 我想根据例如从jenkins传递的变量来运行测试用例,请选择要运行的测试用例:testcaseOne,testcaseTwo 在pom.xml(maven)中: 我有两个testng @test方法: 还有我的testng.xml文件: 如何根据我要运行的测试数量和数量来传递此参数?也许有完全不同的方式来做到这一点? 问题答案: 您可以在testng.xml文件http://testn