如何解决React无法获取全局变量的值
我正在学习React,但我不明白如何制作诸如全局应用状态之类的东西。 我做了一个window.appState杂货,但我无法在组件内部获取appState。它抛出一个错误appState未定义。 appState初始化看起来像:
import React from 'react';
import ReactDOM from 'react-dom';
import './assets/index.scss';
import App from './App';
import {
BrowserRouter as Router
} from "react-router-dom";
let appState = {
accessToken: ''
}
ReactDOM.render(
<React.StrictMode>
<Router>
<App />
</Router>
</React.StrictMode>,document.getElementById('root')
);
如果我尝试访问组件中的appState,则未定义。
class Home extends React.Component
{
constructor(props)
{
super(props)
// window.appState is undefined???
if( ! window.appState.accessToken ) this.props.history.push('/login')
}
.....
}
我在做什么错?非常感谢。
解决方法
设置 function getServers() {
var url = "@Url.Action("getJsonList")";
$.get(url,function (data) {
$("#ajaxStage").empty();//clears out the section so ajax doesn't append same info
$("#ajaxProd").empty();//clears out the section so ajax doesn't append same info
for (var st in data) {
if (data.hasOwnProperty(st)) {
$("#ajaxStage").append(
"<li>" +
"<label>" +
"<input class=\"hummingbird-end-node\" id=\"xnode-0-1-" + st + "\" data-id=\"custom-0-1-1\" type=\"checkbox\" />" +
data[st].ServerName +
"</label>" +
"</li>"
);//ends append
}//ends if
}//ends for in
});//ends function as parmeter
}//ends parent function
$("#idRbStage").on("click",getServers);
可以在文件范围内进行设置。如果要在let appState = {}
上进行设置,以使其具有全局性,请改成window
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。