我是React.js的新手,正在努力找出如何正确使用全局变量。
这里我有一个在App.js中定义的全局变量以及导入
window.$cart = ""
当我在我的网站的另一个页面上更改它时,它会正确地更改为我想要的任何内容,但当我的React路由器通过点击将用户重定向到另一个网页时,比如:
<Router>
<Switch>
<Route exact path="/" component={Main} />
</Switch>
</Router>
这个全局变量似乎将自己重新定义为一个空字符串。
如何防止这种情况发生?
确保以不会重新加载整个页面的方式执行重新路由。如果页面被重新加载,所有全局变量当然都会被重置。
如果您使用以下任一项,整个页面将被重新加载:
<a href="ru"/>
window.location = "ru"
相反,您应该访问react路由器提供的history
对象,然后调用:
history.push('ru')
你可以在这里阅读关于如何检索历史记录对象。