No hay restricciones globales


168

Estoy usando React y Redux para desarrollar una aplicación web y cuando comencé mi proyecto obtuve esto:

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

Search for the keywords to learn more about each error.

Busco mucho sobre cómo resolverlo, pero ninguna de las respuestas que encontré me ayudó, así que recurrí al desbordamiento de pila.

¿Alguien sabe cómo solucionar este error? Agradezco toda la ayuda que puedo obtener.

Respuestas:


406

Intente agregar windowantes location(es decir window.location).


15
Esta debería ser la respuesta aceptada. ESLint le informa correctamente que está escribiendo código débil. Las otras dos respuestas, incluida la respuesta aceptada, no resuelven el problema, sino que solo deshabilitan a ESLint para que no se lo cuente.
eMike Wallace

De hecho, la forma correcta de solucionar esto es prefijar la ubicación con window.location. Por alguna razón, el equipo de CRA actualmente considera locationun "navegador global confuso". Yo diría que si está utilizando CRA y no sabe sobre el objeto de ubicación, está en tierra de nadie. Tal vez lo único que quieren hacer url molesto, lo que sería comprensible la lectura ...
Devin G Rhode

Creé un problema de github preguntando específicamente si el locationobjeto realmente es un navegador global confuso, por lo tanto, necesita el window.prefijo en todas partes ... github.com/facebook/create-react-app/issues/7733
Devin G Rhode

5

Esta es una solución simple y quizás no la mejor, pero funciona.

En la línea sobre la línea que aparece su error, pegue esto:

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


55
Buena solución para un proyecto de crear-reaccionar-aplicación al alinear a los trabajadores de servicios como blobs. Votado
adc

77
Esto no resuelve el problema, solo oculta la advertencia.
Vladimir Nul

0

Quizás podría intentar pasar la ubicación al componente como accesorio. A continuación uso ... otros accesorios. Este es el operador de propagación, y es válido pero innecesario si pasaste tus accesorios explícitamente, solo está allí como un lugar para fines de demostración. Además, investigue la desestructuración para comprender de dónde proviene ({location}).

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

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


export withRouter(MyComponent);

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.