Kısıtlı global yok


168

Bir webapp geliştirmek için React ve Redux kullanıyorum ve projemi başlattığımda bunu aldım:

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

Search for the keywords to learn more about each error.

Nasıl çözüleceği hakkında çok şey araştırıyorum, ancak bulduğum cevapların hiçbiri bana yardımcı olmadı, bu yüzden Stack overflow'a döndüm.

Herkes bu hatayı nasıl düzeltebileceğini biliyor mu? Alabileceğim tüm yardımları takdir ediyorum.

Yanıtlar:


408

Daha windowönce eklemeyi deneyin location(örn. window.location).


15
Bu kabul edilen cevap olmalı. ESLint, zayıf kod yazdığınızı doğru şekilde bildiriyor. Kabul edilen cevap da dahil olmak üzere diğer iki cevap sorunu çözmez, sadece ESLint'in size bunu anlatmasını devre dışı bırakır.
eMike Wallace

Aslında bunu düzeltmenin doğru yolu window.location ile önek eklemektir. Bazı nedenlerden ötürü, MKK ekibi şu anda location"kafa karıştırıcı bir tarayıcı" olarak düşünmektedir . Eğer CRA kullanıyorsanız ve konum nesnesini bilmiyorsanız, arazisizsiniz demektir. Belki de sadece okunabilir bir URL okumak sinir bozucu yapmak istiyorlar ...
Devin G Rhode

Özellikle locationnesnenin gerçekten kafa karıştırıcı bir tarayıcı olup olmadığını soran bir github sorunu oluşturdum , bu nedenle window.her yerde önek gerekiyor ... github.com/facebook/create-react-app/issues/7733
Devin G Rhode

5

Bu basit ve belki de en iyi çözüm değil, ama işe yarıyor.

Çizginin üzerindeki satırda hata mesajı alırsınız, şunu yapıştırın:

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


5
Hizmet çalışanlarını lekeler olarak sıralarken oluştur-tepki-uygulama projesi için iyi bir çözüm. Upvoted.
adc

7
Bu sorunu çözmez, sadece uyarıyı gizler.
Vladimir Nul

0

Belki de konumu bir pervane olarak bileşene geçirmeyi deneyebilirsiniz. Aşağıda ... otherProps kullanıyorum. Bu yayılma operatörüdür ve propslarınızdan açıkça geçtiyseniz geçerli ama gereksizdir, sadece gösteri amaçlı bir yer tutucu olarak oradadır. Ayrıca, ({location}) 'nin nereden geldiğini anlamak için araştırma yıkımı.

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 */

başka bir alternatif yaklaşım

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.