Dans mon code reactjs, j'ai obtenu:
const { children, location: { pathname }, } = this.props; let path = location.pathname;
En utilisant également le module de routeur react dans ce composant. Comment corriger cette erreur?
3 Réponses :
Vous devriez essayer ce code
const { children, location: { pathname }, } = this.props; let path = pathname;
Votre variable location
n'a pas été définie dans ce code de bloc donc eslint
pense que vous utilisez variable globale
Parce que eslint
détecté location
est un élément de window
. Alors, essayez de renommer vos accessoires
:
const { children, myLocation: { pathname }, } = this.props; let path = myLocation.pathname;
Référence:
Dans la plupart / tous les navigateurs Web, location.reload ()
, par exemple, est un alias pour son nom complet window.location.reload ()
.
Vous pouvez le tester dans votre navigateur en ouvrant la console du volet des outils de développement et en saisissant:
window.location.reload()
et
location.reload()
Les deux déclencheront l'actualisation de la page.
L'avertissement ES Lint vous avertit effectivement que votre code repose sur cet alias, il est donc plausible qu'à l'avenir, le code puisse se briser soudainement, peut-être si l'alias est devenu obsolète ou si une partie de votre chaîne d'outils a fonctionné d'une manière qui nécessitait l'utilisation de window.
En JavaScript, des choses étranges peuvent se produire en raison de variable- ombrage et fermeture . Il est possible qu'une référence location
puisse être déclarée après et qu'une telle référence à quelque chose comme location.reload ()
se briserait avec un message tel que "no such method reload ". Ce serait moins susceptible de se produire si vous appeliez le nom complet window.location.reload()
.