Leaflet: ES6 - this.callInitHooks ليست دالة

تم إنشاؤها على ٢٩ ديسمبر ٢٠١٦  ·  8تعليقات  ·  مصدر: Leaflet/Leaflet

  • [x] أبلغ عن خطأ ، لا أطلب المساعدة
  • [] لقد راجعت الوثائق للتأكد من أن السلوك موثق ومتوقع
  • [] أنا متأكد من أن هذه مشكلة في رمز Leaflet ، وليست مشكلة في الكود الخاص بي ولا في الإطار الذي أستخدمه (Cordova ، Ionic ، Angular ، React ...)
  • [] لقد بحثت في المشكلات للتأكد من عدم الإبلاغ عنها بعد

كيف تتكاثر

  • إصدار المنشور الذي أستخدمه:
  • المتصفح (بالإصدار) الذي أستخدمه:
  • نظام التشغيل / النظام الأساسي (مع الإصدار) الذي أستخدمه:
  • الخطوة 1
  • الخطوة 2

ما هو السلوك الذي أتوقعه وأي سلوك أراه

مثال بسيط على إعادة إنتاج المشكلة

  • [] هذا المثال بسيط قدر الإمكان
  • [] هذا المثال لا يعتمد على أي كود طرف ثالث

استخدام http://playground-leaflet.rhcloud.com/ أو أي موقع آخر يشبه jsfiddle.

التعليق الأكثر فائدة

فقط في حالة وجود شخص ما لديه نفس الخطأ ، بدلاً من

var positron = L.TileLayer(...)

يجب ان تكتب:

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

الكلمة الرئيسية الجديدة مفقودة في رابط الملعب الخاص بك pcrombach

ال 8 كومينتر

كنت أحاول استخدام أحدث إصدار من النشرة 1.02 في أحد التطبيقات. Leaflet 1.0.2 لا يعمل بأي مشكلة إذا قمت بإنشاء التطبيق بجافا سكريبت عادي. استخدم المنشور 1.0.2 في فواصل تطبيق Typescript مع: this.callInitHooks ليست وظيفة بمجرد أن أضيف عنصر تحكم إضافي مثل GeoSearch إلى الخريطة.

هل النشرة 1.0.2 ES6 / Typescript متوافقة؟

لا ينبغي أن يكون هناك أي شيء يمنعك من استخدام Leaflet مع TypeScript (هناك تعريفات لها: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts) و ES6.

لا تتردد في تقديم مثال على http://playground-leaflet.rhcloud.com/ أو jsfiddle أو ما شابه إذا كنت تعتقد أن هناك أي مشكلة معينة في Leaflet تمنع ذلك.

انت على حق تماما. أنا أيضًا لا أواجه أي مشاكل في استخدام Leaflet في تطبيقي باستخدام Typescript. إنها فقط المكونات الإضافية التي لا تعمل.
تشغيل المكونات الإضافية لا يمكن العثور على kookinit ().

المرجع 3 يناير. 2017، om 14:57 heeft Per Liedman [email protected] het volgende geschreven:

لا ينبغي أن يكون هناك أي شيء على وجه الخصوص يمنعك من استخدام Leaflet مع TypeScript (هناك تعريفات لها: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts https: // github .com / DefinitelyTyped / DefinitelyTyped / blob / master / منشور / index.d.ts ) و ES6.

لا تتردد في تقديم مثال على http://playground-leaflet.rhcloud.com/ http://playground-leaflet.rhcloud.com/ أو jsfiddle أو ما شابه إذا كنت تعتقد أن هناك أي مشكلة معينة في Leaflet تمنع ذلك.

-
أنت تتلقى هذا لأنك قمت بتأليف الموضوع.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/Leaflet/Leaflet/issues/5224#issuecomment-270119252 ، أو كتم صوت الموضوع https://github.com/notifications/unsubscribe-auth/AAZlpz5axhLON3LzzdbHZIgG4DYx4- Gnks5rOlPMgaJpZM4LXtMC .

أعتقد أنه يجب عليك تقديم مشكلة مع المكون الإضافي المعني ، وللأسف فإن فريق Leaflet لديه رؤية محدودة حول المكونات الإضافية من قبل المؤلفين الآخرين ، كما أن وقتنا ومواردنا تمنعنا من تصحيح الأخطاء خارج جوهر Leaflet.

لا أعرف ما إذا كان هذا مفيدًا ، لكني واجهت نفس المشكلة للتو. لكنه كان خطأي. كنت أتصل بـ L.TilelLayer وليس L.tileLayer () ، ربما أضف هذا إلى الوثائق كأخطاء شائعة :- (انظر أيضًا https://github.com/mWater/offline-leaflet-map/issues/18

فقط في حالة وجود شخص ما لديه نفس الخطأ ، بدلاً من

var positron = L.TileLayer(...)

يجب ان تكتب:

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

الكلمة الرئيسية الجديدة مفقودة في رابط الملعب الخاص بك pcrombach

فقط لتوضيح المشكلة - يستخدم Leaflet الفئات ، ولديه أيضًا طرق المصنع لإنشاء كائنات جديدة. الفصول مقيدة وتحتاج إلى استدعاؤها بـ new ، في حين أن أساليب المصنع صغيرة ويجب ألا تكون كذلك. يستخدم التوثيق طرق المصنع ، لذلك لا يمكنني تحديد ما إذا كان مثيل فئة إنشاء مثيل مباشر مدعومًا ، على الرغم من أن المصانع تستدعي ببساطة new أي حال. وبالتالي ، فإن ما يلي متكافئ ، على الرغم من توثيق الأول فقط.

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

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

نفس المشكلة موجودة في الرد أيضًا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات