Javascript 无限制全局
我正在使用React和Redux开发一个Web应用程序,当我启动我的项目时,我得到了以下信息:Javascript 无限制全局,javascript,reactjs,react-router,eslint,Javascript,Reactjs,React Router,Eslint,我正在使用React和Redux开发一个Web应用程序,当我启动我的项目时,我得到了以下信息: Line 13: Unexpected use of 'location' no-restricted-globals Search for the keywords to learn more about each error. 我搜索了很多关于如何解决它的问题,但没有一个答案对我有帮助,所以我转向堆栈溢出 有人知道如何修复此错误吗?我感谢所有能得到的帮助 尝试在位置之前添加窗口(即窗口.位
Line 13: Unexpected use of 'location' no-restricted-globals
Search for the keywords to learn more about each error.
我搜索了很多关于如何解决它的问题,但没有一个答案对我有帮助,所以我转向堆栈溢出
有人知道如何修复此错误吗?我感谢所有能得到的帮助 尝试在
位置
之前添加窗口
(即窗口.位置
)。这是一个简单的解决方案,可能不是最好的解决方案,但它很有效
在获得错误的行上方的行上,粘贴以下内容:
//eslint禁用下一行无限制全局变量
/* eslint no-restricted-globals:0 */
是另一种替代方法也许您可以尝试将位置作为道具传递到组件中。 下面我用…其他道具。这是spread运算符,它是有效的,但如果您显式地传递了道具,它只是作为一个占位符,用于演示目的,则它是不必要的。另外,研究解构以了解({location})的来源
import React from 'react';
import withRouter from 'react-router-dom';
const MyComponent = ({ location, ...otherProps }) => (whatever you want to render)
export withRouter(MyComponent);
使用
react路由器dom
库
如果您使用的是功能组件,请从此处导入useLocation
hook:
从'react router dom'导入{useLocation}代码>
然后将其附加到变量:
Const location=useLocation()代码>
然后,您可以正常使用它:
location.pathname
注意:返回的位置
对象只有五个属性:
{hash:,key:,pathname:“/”search:”,state:undefined_uuu,}
只需像这样解构locaton:({location})
这应该是可以接受的答案。ESLint正确地让您知道您正在编写弱代码。其他两个答案(包括已接受的答案)并不能解决问题,只会禁止ESLint告诉您有关此问题的信息。实际上,解决此问题的正确方法是在location前面加上window.location。出于某种原因,CRA团队目前认为位置
是一个“令人困惑的全局浏览器”。我想说,如果你正在使用CRA,并且不知道位置对象,那么你是在无人区。也许他们只是想让阅读url变得烦人,这是可以理解的……我创建了一个github问题,专门询问位置对象是否真的是一个令人困惑的全局浏览器,因此需要窗口。
前缀无处不在。。。当将服务人员内联为blob时,createreact应用程序项目是一个很好的解决方案。向上投票。这并不能解决问题,只是隐藏了警告。这并不能提供问题的答案。一旦你有足够的钱,你将能够;相反-