Ich verwende React und Redux, um eine Webapp zu entwickeln, und als ich mein Projekt startete, bekam ich Folgendes:
Line 13: Unexpected use of 'location' no-restricted-globals
Search for the keywords to learn more about each error.
Ich suche viel darüber, wie ich es lösen kann, aber keine der Antworten, die ich gefunden habe, hat mir geholfen, also habe ich mich an den Stapelüberlauf gewandt.
Weiß jemand, wie man diesen Fehler beheben kann? Ich schätze jede Hilfe, die ich bekommen kann.
Chasen Bettinger
Versuchen Sie, hinzuzufügen window Vor location (dh window.location).
In der Tat ist der richtige Weg, dies zu beheben, dem Standort window.location voranzustellen. Aus irgendeinem Grund erwägt das CRA-Team derzeit location ein “verwirrender globaler Browser”. Ich würde sagen, wenn Sie CRA verwenden und das Standortobjekt nicht kennen, befinden Sie sich im Niemandsland. Vielleicht wollen sie nur das Lesen von URLs lästig machen, was verständlich wäre …
– Devin Rhode
25. September 2019 um 12:44 Uhr
Ich habe ein Github-Problem erstellt, in dem speziell gefragt wird, ob die location Objekt Ja wirklich ist ein verwirrender globaler Browser und benötigt daher die window. Präfix überall… github.com/facebook/create-react-app/issues/7733
– Devin Rhode
25. September 2019 um 12:45 Uhr
Martin Nordström
Dies ist eine einfache und vielleicht nicht die beste Lösung, aber es funktioniert.
Fügen Sie in der Zeile über der Zeile, in der Sie Ihren Fehler erhalten, Folgendes ein:
// eslint-disable-next-line no-restricted-globals
Gute Lösung für ein Create-React-App-Projekt, wenn Servicemitarbeiter als Blobs eingebunden werden. Hochgestimmt.
– adc
5. Januar 2019 um 1:09 Uhr
Dies löst das Problem nicht, blendet nur die Warnung aus.
– Wladimir Nul
10. Juli 2019 um 7:38 Uhr
Verwenden react-router-dom Bibliothek.
Von dort aus importieren useLocation Haken, wenn Sie funktionale Komponenten verwenden:
import { useLocation } from 'react-router-dom';
Dann an eine Variable anhängen:
Const location = useLocation();
Sie können es dann normal verwenden:
location.pathname
PS: die zurückgegeben location Objekt hat nur fünf Eigenschaften:
Vielleicht könnten Sie versuchen, den Standort als Requisite an die Komponente zu übergeben. Unten verwende ich …andereProps. Dies ist der Spread-Operator und ist gültig, aber unnötig, wenn Sie Ihre Requisiten explizit übergeben haben. Er ist nur als Platzhalter für Demonstrationszwecke vorhanden. Recherchieren Sie auch die Destrukturierung, um zu verstehen, woher ({ location }) kam.
import React from 'react';
import withRouter from 'react-router-dom';
const MyComponent = ({ location, ...otherProps }) => (whatever you want to render)
export withRouter(MyComponent);
Guten Tag, kopieren Sie einfach die folgende Zeile an den Anfang Ihrer Datei:
/* eslint-disable no-restricted-globals */
Dadurch können Sie die Eslint-Regel für diese bestimmte Datei global deaktivieren.
schädrich
Destrukturieren Sie einfach den Standort wie folgt: ({location}).