Nessun globale limitato


168

Sto usando React e Redux per sviluppare una webapp e quando ho avviato il mio progetto ho ottenuto questo:

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

Search for the keywords to learn more about each error.

Cerco molto su come risolverlo, ma nessuna delle risposte che ho trovato mi ha aiutato, quindi sono passato allo StackTranslate.it.

Qualcuno sa come risolvere questo errore? Apprezzo tutto l'aiuto che posso ottenere.

Risposte:


409

Prova ad aggiungere windowprima location(ad es window.location.).


15
Questa dovrebbe essere la risposta accettata. ESLint ti informa correttamente che stai scrivendo un codice debole. Le altre due risposte, inclusa la risposta accettata, non risolvono il problema, ma disabilitano solo ESLint a parlartene.
eMike Wallace,

In effetti il ​​modo corretto per risolvere questo problema è quello di aggiungere il prefisso alla posizione con window.location. Per qualche ragione, il team CRA attualmente considera locationun "browser confuso globale". Direi che se stai usando CRA e non conosci l'oggetto della posizione, sei in una terra di nessuno. Forse vogliono solo rendere la lettura dell'URL fastidiosa, il che sarebbe comprensibile ...
Devin G Rhode,

Ho creato un problema github chiedendo specificamente se l' locationoggetto è davvero un browser confuso globale, quindi ho bisogno del window.prefisso ovunque ... github.com/facebook/create-react-app/issues/7733
Devin G Rhode

5

Questa è una soluzione semplice e forse non la migliore, ma funziona.

Sulla riga sopra la riga viene visualizzato l'errore, incollare questo:

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


5
Buona soluzione per un progetto di creazione-reazione-app quando si inseriscono i lavoratori del servizio come BLOB. Upvoted.
adc,

7
Questo non risolve il problema, nasconde solo l'avviso.
Vladimir Nul

0

Forse potresti provare a passare la posizione nel componente come prop. Di seguito uso ... otherProps. Questo è l'operatore di diffusione ed è valido ma inutile se hai passato esplicitamente i tuoi oggetti di scena è lì solo come segnaposto a scopo dimostrativo. Inoltre, la ricerca destrutturante per capire da dove proviene ({location}).

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

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


export withRouter(MyComponent);

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

è un altro approccio alternativo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.