javascript - 为什么我会收到“意外使用 'location' no-restricted-globals”?
问题描述
在我的 reactjs 代码中,我得到了:
const {
children,
location: { pathname },
} = this.props;
let path = location.pathname;
还在此组件中使用 react 路由器模块。如何修复此错误?
解决方案
例如,在大多数/所有 Web 浏览器中location.reload()
, 是其完全限定名称 的别名window.location.reload()
。
您可以通过打开开发工具窗格控制台并输入以下内容在浏览器中对其进行测试:
location.reload()
和
window.location.reload()
两者都会触发页面刷新。
ES Lint 警告实际上是在警告您您的代码依赖于此别名,因此将来代码可能会突然中断,这可能是因为该别名已被弃用或您的工具链的某些部分以某种方式运行所需的用法window.
在 JavaScript 中,由于变量阴影和闭包可能会发生奇怪的事情。可能location
会在之后声明引用,然后对类似内容的引用location.reload()
会中断,并显示诸如“没有此类方法重新加载”之类的消息。如果您调用完全限定名称,这将不太可能发生window.location.reload()
。
推荐阅读
- python - 如何在两个python脚本问题之间共享变量
- node.js - 如何与时刻 js 比较时间?
- android - 任务 ':app:transformDexArchiveWithDexMergerForDebug' 执行失败。- 反应原生
- docker - 无法连接到 wsl 2 上 debian buster 上的 Docker 守护程序
- angular - 如果不替换,如何向 TypeScript 解释该方法是增强的
- spring-boot - Spring FeignClient 抛出 java.lang.NoClassDefFoundError: okhttp3/ConnectionPool
- java - How merge values of Mono in loop?
- xml - 如何使用 XSL 获取特定元素的值
- flutter - 我怎么知道用户是在删除还是在写
- reactjs - 处理 React 重新渲染