0

我正在学习 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')
    }

    .....

}

我究竟做错了什么?非常感谢。

4

1 回答 1

1

设置let appState = {}将其设置在文件的范围内。如果您想将其设置window为全局,则可以改为window.appState = {}.

于 2020-08-13T21:29:32.507 回答