如何在 React JS 中访问全局(window.)变量

Ank*_*kul 5 global global-variables reactjs

I\xe2\x80\x99m 使用 React JS。我有登录页面,它从端点接收数据作为响应。I\xe2\x80\x99m 在窗口中存储来自响应的不同组件。变量,因为它们必须在不同的组件中访问。这仅在加载新组件时才起作用,在它\xe2\x80\x99s刷新窗口之后。变量变为空。

\n\n

这是我的登录组件:

\n\n
handleSubmit(event) {\nevent.preventDefault()\n\naxios\n  .post("EDN POINT LINK",\n    {\n      email: this.state.email,\n      password: this.state.password\n\n    })\n  .then((response) => {\n\n    console.log(response);\n\n    // STORING ID\n    window.id = window.responseDetails.map(\n      mID => mID.id\n    )\n    console.log(\'ID is: \' + window.id);\n\n    // STORING TOKEN\n    window.token = window.responseDetails.map(\n      mToken => mToken.token\n    )\n    console.log(\'TOKEN is: \' + window.token);\n\n    // STORING ERROR\n    window.error = window.responseDetails.map(\n      mError => mError.error\n    )\n    console.log(\'ERROR is: \' + window.error);\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我访问窗口的组件。多变的:

\n\n
 render() {\n\n    console.log(window.id)\n    return (\n\n    )\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我有更多时间,我会实现 Redux 或 Context 之类的东西,但不幸的是我没有,因为我对 React JS 相当陌生。

\n

小智 2

请不要在窗口中存储持久数据!

窗口是全局的,但其范围与新页面加载有关。

为了获得一致的数据,您应该考虑持久存储,例如 localStorage、sessionStorage 和 cookie。

在这里查看更多示例localStorage、sessionStorage、session 和 cookies 之间有什么区别?

  • 关于如何在reactjs中访问window变量的问题。我建议尝试这个答案并带有有关其使用的警告。 (3认同)