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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...