javascript - React.js 全局变量在路由上擦除
问题描述
我是 React.js 的新手,正在尝试弄清楚如何正确使用全局变量。
在这里,我在 App.js 中定义了一个全局变量以及导入
window.$cart = ""
当我在我网站的另一个页面中更改它时,它会正确更改为我想要的任何内容,但是当我的 React-router 通过单击将用户重定向到另一个页面时,例如:
<Router>
<Switch>
<Route exact path="/" component={Main} />
</Switch>
</Router>
看起来这个全局变量将自己重新定义回一个空字符串。
我该如何防止这种情况?
解决方案
确保以不重新加载整个页面的方式执行重新路由。如果页面重新加载,所有全局变量当然会被重置。
如果您使用以下任何一项,将重新加载整个页面:
<a href="ru"/>
window.location = "ru"
相反,您应该访问history
react-router 提供的对象,然后调用:
history.push('ru')
您可以在此处阅读 有关如何检索历史对象的信息。
推荐阅读
- javascript - 为什么我的 Bootstrap 日期时间选择器不工作?
- postman - 在 Postman 中插入不带毫秒的时间戳(只有 10 位数字)
- java - 为什么这个链式条件运算符会抛出 NPE?
- shell - 有什么方法可以在每次启动 xfce4 时自动在 xfce4 窗口上打开多个终端?
- python - 如何在odoo 13中升级模块时修复模型错误
- java - Java 属性不能在构造函数中赋值
- python - 使用Python和bleak库通知蓝牙GATT设备,但结果不稳定
- java - 如何将参数动态添加到 Spring Boot @PreAuthorize with SpEL to hasAnyRole
- python - Python:NameError:名称未定义,即使已定义
- unicode - 将 Unicode 字符串转换为规范化形式的伪代码算法