Keine eingeschränkten Globals

Lesezeit: 2 Minuten

Benutzer-Avatar
Martin Nordström

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.

Benutzer-Avatar
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

Benutzer-Avatar
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:

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

  • Diese Antwort hat nichts mit dem Problem zu tun.

    – Malke

    18. März um 15:22 Uhr

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.

Benutzer-Avatar
schädrich

Destrukturieren Sie einfach den Standort wie folgt: ({location}).

Benutzer-Avatar
Dan Krüger

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

ist ein weiterer alternativer Ansatz

1309970cookie-checkKeine eingeschränkten Globals

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy