Leaflet: ES6 this.callInitHooks bukan fungsi

Dibuat pada 29 Des 2016  ·  8Komentar  ·  Sumber: Leaflet/Leaflet

  • [x] Saya melaporkan bug, bukan meminta bantuan
  • [ ] Saya telah melihat dokumentasi untuk memastikan perilaku didokumentasikan dan diharapkan
  • [ ] Saya yakin ini adalah masalah kode Leaflet, bukan masalah dengan kode saya sendiri atau dengan kerangka kerja yang saya gunakan (Cordova, Ionic, Angular, React…)
  • [ ] Saya telah menelusuri masalah untuk memastikannya belum dilaporkan

Cara memperbanyak

  • Versi selebaran yang saya gunakan:
  • Browser (dengan versi) yang saya gunakan:
  • OS/Platform (dengan versi) Saya menggunakan:
  • Langkah 1
  • Langkah 2

Perilaku apa yang saya harapkan dan perilaku apa yang saya lihat

Contoh minimal mereproduksi masalah

  • [ ] contoh ini sesederhana mungkin
  • [ ] contoh ini tidak bergantung pada kode pihak ketiga mana pun

Menggunakan http://playground-leaflet.rhcloud.com/ atau situs serupa jsfiddle lainnya.

Komentar yang paling membantu

Untuk berjaga-jaga jika seseorang memiliki kesalahan yang sama, alih-alih

var positron = L.TileLayer(...)

Anda harus menulis:

var positron = new L.TileLayer(...)

Kata kunci baru tidak ada di tautan taman bermain Anda @pcrombach

Semua 8 komentar

Saya mencoba versi terbaru dari selebaran 1.02 untuk digunakan dalam sebuah aplikasi. Leaflet 1.0.2 tidak ada masalah jika saya membuat aplikasi dalam javascript biasa. Gunakan selebaran 1.0.2 dalam jeda aplikasi TypeScript dengan: this.callInitHooks bukan fungsi segera setelah saya menambahkan plugin Kontrol seperti GeoSearch ke peta.

Apakah selebaran 1.0.2 ES6 / TypeScript kompatibel?

Seharusnya tidak ada sesuatu yang khusus menghentikan Anda dari menggunakan Leaflet dengan TypeScript (ada definisi untuk itu: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts) dan ES6.

Jangan ragu untuk memberikan contoh di http://playground-leaflet.rhcloud.com/ , jsfiddle atau sejenisnya jika menurut Anda ada masalah khusus dengan Leaflet yang mencegah hal ini.

Anda benar sekali. Saya juga tidak memiliki masalah menggunakan Leaflet di aplikasi saya dengan TypeScript. Itu hanya plugin yang tidak berfungsi.
menjalankan plugin tidak dapat menemukan kookinit().

Op 3 jan. 2017, om 14:57 heeft Per Liedman [email protected] het volgende geschreven:

Seharusnya tidak ada sesuatu yang secara khusus menghentikan Anda menggunakan Leaflet dengan TypeScript (ada definisi untuk itu: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts https://github .com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts ) dan ES6.

Jangan ragu untuk memberikan contoh di http://playground-leaflet.rhcloud.com/ http://playground-leaflet.rhcloud.com/ , jsfiddle atau sejenisnya jika menurut Anda ada masalah khusus dengan Leaflet yang mencegah hal ini.


Anda menerima ini karena Anda yang menulis utas.
Balas email ini secara langsung, lihat di GitHub https://github.com/Leaflet/Leaflet/issues/5224#issuecomment-270119252 , atau matikan utasnya https://github.com/notifications/unsubscribe-auth/AAZlpz5axhLON3LzzdbHZIgG4DYx4- Gnks5rOlPMgaJpZM4LXtMC .

Saya pikir Anda harus mengajukan masalah dengan plugin yang dimaksud, sayangnya tim Leaflet memiliki wawasan terbatas tentang plugin oleh penulis lain, dan juga waktu dan sumber daya kami mencegah kami men-debug masalah di luar inti Leaflet.

Saya tidak tahu apakah ini membantu, tetapi saya hanya memiliki masalah yang sama. Tapi itu kesalahan saya. Saya menelepon L.TilelLayer dan bukan L.tileLayer() , mungkin menambahkan ini ke dokumentasi sebagai kesalahan umum :-( lihat juga https://github.com/mWater/offline-leaflet-map/issues/18

Untuk berjaga-jaga jika seseorang memiliki kesalahan yang sama, alih-alih

var positron = L.TileLayer(...)

Anda harus menulis:

var positron = new L.TileLayer(...)

Kata kunci baru tidak ada di tautan taman bermain Anda @pcrombach

Hanya untuk memperjelas apa masalahnya - Leaflet menggunakan kelas, dan juga memiliki metode pabrik untuk membuat objek baru. Kelas dikapitalisasi dan perlu dipanggil dengan new , sedangkan metode pabrik huruf kecil dan tidak boleh. Dokumentasi menggunakan metode pabrik, jadi saya tidak bisa mengatakan apakah instantiasi instan kelas didukung, meskipun pabrik hanya memanggil new . Oleh karena itu, berikut ini setara, meskipun hanya yang pertama yang didokumentasikan.

// Small t, calling factory method 
const positron = L.tileLayer(...); 

// Capital T, instantiating a new instance directly 
const positron = new L.TileLayer(...);

masalah yang sama ada di reaksi juga

Apakah halaman ini membantu?
0 / 5 - 0 peringkat