没有限制全局变量

时间:2017-07-08 23:29:46

标签: javascript reactjs react-router eslint

我正在使用React和Redux来开发一个webapp,当我启动我的项目时,我得到了这个:

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

Search for the keywords to learn more about each error.

我搜索了很多关于如何解决它的问题,但我发现的答案都没有帮助我,所以我转向Stack溢出。

有谁知道如何解决此错误?我很感激能得到的所有帮助。

7 个答案:

答案 0 :(得分:184)

尝试在Public Shared Function CaseLookup(numArray As Array, lookupArray As Array, minVal As Double, maxval As Double) As String Dim result As String = "" Dim GetNum As Double = MT.GenerateDouble(minVal, maxval) If numArray.Length <> lookupArray.Length Then 'Checks to make sure the arrays are the same length Throw New Exception("numArray and lookupArray MUST be the same length!") Exit Function End If For i = 0 To numArray.Length - 1 If GetNum < numArray(i) Then result = lookupArray(i).ToString() Next i Return result End Function 之前添加window(即location)。

答案 1 :(得分:0)

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

在该行上方的行中,您会收到错误:

//eslint-disable-next-line

答案 2 :(得分:0)

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

是另一种替代方法

答案 3 :(得分:0)

也许您可以尝试将位置作为道具传递到组件中。 下面我使用... otherProps。这是传播操作符,是有效的,但不是必需的,如果您明确传递了道具,它只是作为占位符用于演示目的。另外,进行结构性研究以了解({location})的来源。

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

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


export withRouter(MyComponent);

答案 4 :(得分:0)

对我来说,我在历史和位置方面遇到了问题... 作为使用历史和位置之前的窗口的公认答案,(即window.history和window.location )解决了我的问题

答案 5 :(得分:0)

使用react-router-dom库。

如果要使用功能组件,请从此处导入useLocation钩子:

import { useLocation } from 'react-router-dom';

然后将其附加到变量:

Const location = useLocation();

然后您可以正常使用它:

location.pathname

P.S:返回的location对象仅具有五个属性:

{ hash: "", key: "", pathname: "/" search: "", state: undefined__, }

答案 6 :(得分:-2)

只需像这样解构位置:({location})