Нет ограниченных глобалов


168

Я использую React и Redux для разработки веб-приложения, и когда я запустил свой проект, я получил это:

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

Search for the keywords to learn more about each error.

Я много искал, как решить эту проблему, но ни один из найденных ответов не помог мне, поэтому я обратился к переполнению стека.

Кто-нибудь знает, как исправить эту ошибку? Я ценю всю помощь, которую я могу получить.

Ответы:


409

Попробуйте добавить windowдо location(то есть window.location).


15
Это должен быть принятый ответ. ESLint правильно сообщает, что вы пишете слабый код. Два других ответа, включая принятый ответ, не решают проблему, а только отключают ESLint, чтобы сообщить вам об этом.
eMike Уоллес

Действительно, правильный способ исправить это - поставить префикс местоположения с помощью window.location. По какой-то причине команда CRA в настоящее время считает location«запутанный браузер глобальным». Я бы сказал, что если вы используете CRA и не знаете об объекте местоположения, вы находитесь на ничейной земле. Может быть, они просто хотят сделать чтение URL раздражающим, что было бы понятно ...
Девин Дж Род

Я создал проблему github, специально спрашивая, действительно ли locationобъект является глобальным запутанным браузером, поэтому везде нужен префикс ... github.com/facebook/create-react-app/issues/7733window.
Девин Дж Род

5

Это простое и, возможно, не лучшее решение, но оно работает.

В строке над строкой вы получите свою ошибку, вставьте это:

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


5
Хорошее решение для проекта create-response-app, когда работники сферы обслуживания выделяются в виде BLOB-объектов. Upvoted.
ADC

7
Это не решает проблему, просто скрывает предупреждение.
Владимир Нул

0

Возможно, вы могли бы попробовать передать местоположение в компонент в качестве опоры. Ниже я использую ... другие реквизиты. Это оператор распространения, и он действителен, но не нужен, если вы явно передали свой реквизит, он просто используется в качестве заполнителя для демонстрационных целей. Кроме того, исследование разрушения, чтобы понять, откуда ({местоположение}) пришел.

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

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


export withRouter(MyComponent);

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.