首页 > 解决方案 > React.js 全局变量在路由上擦除

问题描述

我是 React.js 的新手,正在尝试弄清楚如何正确使用全局变量。

在这里,我在 App.js 中定义了一个全局变量以及导入

window.$cart = ""

当我在我网站的另一个页面中更改它时,它会正确更改为我想要的任何内容,但是当我的 React-router 通过单击将用户重定向到另一个页面时,例如:

<Router>
    <Switch>
        <Route exact path="/" component={Main} />
    </Switch>
</Router>

看起来这个全局变量将自己重新定义回一个空字符串。

我该如何防止这种情况?

标签: javascriptreactjs

解决方案


确保以不重新加载整个页面的方式执行重新路由。如果页面重新加载,所有全局变量当然会被重置。

如果您使用以下任何一项,将重新加载整个页面:

<a href="ru"/>
window.location = "ru"

相反,您应该访问historyreact-router 提供的对象,然后调用:

history.push('ru')

您可以在此处阅读 有关如何检索历史对象的信息。


推荐阅读