我正在使用React和Redux开发一个web应用程序,当我开始我的项目时,我得到了这个:

Line 13:  Unexpected use of 'location'  no-restricted-globals

Search for the keywords to learn more about each error.

我搜索了很多关于如何解决这个问题的方法,但我找到的答案都对我没有帮助,所以我求助于Stack overflow。

有人知道如何修复这个错误吗?我很感激我能得到的所有帮助。


当前回答

/* eslint no-restricted-globals:0 */

是另一种替代方法

其他回答

就像这样解构locaton:({location})。

/* eslint no-restricted-globals:0 */

是另一种替代方法

也许您可以尝试将位置作为道具传递到组件中。 下面我使用……otherProps。这是展开运算符,有效但没有必要,如果你显式地传入你的props,它只是作为一个占位符用于演示。此外,研究解构来了解({location})来自哪里。

import React from 'react';
import withRouter from 'react-router-dom';

const MyComponent = ({ location, ...otherProps }) => (whatever you want to render)


export withRouter(MyComponent);

这是一个简单的,也许不是最好的解决方案,但它是有效的。

在你得到错误的那一行上面,粘贴这个:

// eslint-disable-next-line no-restricted-globals . //

这是eslint的问题。同样发生在我使用的名称在输入值没有定义名称状态变量。

Eslint有一个限制词列表,我们不能使用。我很好奇,发现了这个eslint-restricted-globals npm包

浏览器中的一些全局变量很可能被人们使用 不打算将它们用作全局变量,如状态、名称等。 因为eslint认为它们是有效的全局变量,所以确实如此 没有警告,以防出现bug。

var restrictedGlobals = require("eslint-restricted-globals");

console.log("restricted ", restrictedGlobals);

这是eslint限制词列表

0 : "addEventListener" 1 : "blur" 2 : "close" 3 : "closed" 4 : "confirm" 5 : "defaultStatus" 6 : "event" 7 : "external" 8 : "defaultstatus" 9 : "find" 10 : "focus" 11 : "frameElement" 12 : "frames" 13 : "history" 14 : "innerHeight" 15 : "innerWidth" 16 : "length" 17 : "location" 18 : "locationbar" 19 : "menubar" 20 : "moveBy" 21 : "moveTo" 22 : "name" 23 : "onblur" 24 : "onerror" 25 : "onfocus" 26 : "onload" 27 : "onresize" 28 : "onunload" 29 : "open" 30 : "opener" 31 : "opera" 32 : "outerHeight" 33 : "outerWidth" 34 : "pageXOffset" 35 : "pageYOffset" 36 : "parent" 37 : "print" 38 : "removeEventListener" 39 : "resizeBy" 40 : "resizeTo" 41 : "screen" 42 : "screenLeft" 43 : "screenTop" 44 : "screenX" 45 : "screenY" 46 : "scroll" 47 : "scrollbars" 48 : "scrollBy" 49 : "scrollTo" 50 : "scrollX" 51 : "scrollY" 52 : "self" 53 : "status" 54 : "statusbar" 55 : "stop" 56 : "toolbar" 57 : "top"