Tidak ada global terbatas

168

Saya menggunakan React dan Redux untuk mengembangkan aplikasi web dan ketika saya memulai proyek saya, saya mendapatkan ini:

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

Search for the keywords to learn more about each error.

Saya mencari banyak tentang cara mengatasinya, tetapi tidak ada jawaban yang saya temukan yang membantu saya, jadi saya menoleh ke Stack overflow.

Adakah yang tahu cara memperbaiki kesalahan ini? Saya menghargai semua bantuan yang bisa saya dapatkan.

Martin Nordström
sumber

Jawaban:

406

Coba tambahkan windowsebelum location(yaitu window.location).

Chasen Bettinger
sumber
15
Ini harus menjadi jawaban yang diterima. ESLint dengan benar memberi tahu Anda bahwa Anda sedang menulis kode yang lemah. Dua jawaban lainnya, termasuk jawaban yang diterima, tidak menyelesaikan masalah tetapi hanya menonaktifkan ESLint untuk memberi tahu Anda tentang hal itu.
eMike Wallace
Memang cara yang benar untuk memperbaikinya adalah dengan mengawali lokasi dengan window.location. Untuk beberapa alasan, tim CRA saat ini mempertimbangkan location"browser global yang membingungkan". Saya akan mengatakan jika Anda menggunakan CRA dan tidak tahu tentang objek lokasi, Anda berada di tanah tak bertuan. Mungkin mereka hanya ingin membuat membaca url menjengkelkan, yang bisa dimengerti ...
Devin G Rhode
Saya membuat masalah github secara khusus menanyakan apakah locationobjek tersebut benar - benar global browser yang membingungkan, oleh karena itu memerlukan window.awalan di mana-mana ... github.com/facebook/create-react-app/issues/7733
Devin G Rhode
5

Ini sederhana dan mungkin bukan solusi terbaik, tetapi berhasil.

Pada baris di atas baris Anda mendapatkan kesalahan Anda, rekatkan ini:

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

Martin Nordström
sumber
5
Solusi yang bagus untuk proyek membuat-reaksi-aplikasi saat menyamakan pekerja layanan sebagai gumpalan. Terpilih.
adc
7
Ini tidak menyelesaikan masalah, hanya menyembunyikan peringatan.
Vladimir Nul
0

Mungkin Anda bisa mencoba melewati lokasi ke dalam komponen sebagai penyangga. Di bawah ini saya menggunakan ... OtherProps. Ini adalah operator spread, dan valid tetapi tidak perlu jika Anda menyerahkan props Anda secara eksplisit, itu hanya ada sebagai tempat penampung untuk tujuan demonstrasi. Juga, perusakan penelitian untuk memahami dari mana ({lokasi}) berasal.

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

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


export withRouter(MyComponent);
Steven Sheaves
sumber
-2
/* eslint no-restricted-globals:0 */

adalah pendekatan alternatif lain

Dan Krueger
sumber