Leaflet: ES6this.callInitHooksは関数ではありません

作成日 2016年12月29日  ·  8コメント  ·  ソース: Leaflet/Leaflet

  • [x]助けを求めるのではなく、バグを報告しています
  • []動作が文書化され、期待されていることを確認するために
  • []これはリーフレットコードの問題であり、自分のコードや使用しているフレームワーク(Cordova、Ionic、Angular、React…)の問題ではないと確信しています。
  • []問題を検索して、まだ報告されていないことを確認しました

再現する方法

  • 私が使用しているリーフレットバージョン:
  • 私が使用しているブラウザ(バージョンあり):
  • 私が使用しているOS /プラットフォーム(バージョンあり):
  • ステップ1
  • ステップ2

私が期待している行動と私が見ている行動

問題を再現する最小限の例

  • []この例は可能な限り単純です
  • []この例はサードパーティのコードに依存していません

http://playground-leaflet.rhcloud.com/または他のjsfiddleのようなサイトを使用します。

最も参考になるコメント

誰かが同じエラーを起こした場合に備えて、代わりに

var positron = L.TileLayer(...)

あなたは書くべきです:

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

新しいキーワードがプレイグラウンドリンク@pcrombachにありません

全てのコメント8件

アプリで使用するリーフレット1.02の最新バージョンを試していました。 プレーンなJavaScriptでアプリをビルドした場合、リーフレット1.0.2は問題なく機能します。 Typescriptアプリでリーフレット1.0.2を使用すると、次のようになります。GeoSearchなどのコントロールプラグインをマップに追加するとすぐに、this.callInitHooksは関数になりません。

リーフレット1.0.2ES6 / Typescriptは互換性がありますか?

TypeScript(https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts)およびES6でLeafletを使用することを特に妨げるものは何もないはずです。

これを妨げるLeafletに特定の問題があると思われる場合は、 http: //playground-leaflet.rhcloud.com/、jsfiddleなどで例を自由に提供してください。

あなたは、絶対に正しい。 私もTypescriptを使用してアプリでLeafletを使用しても問題はありません。 動作しないのはプラグインだけです。
プラグインを実行すると、kookinit()が見つかりません。

Op 3jan。 2017年、OM Liedmanパー14時57分heeft [email protected] HET volgende geschreven:

TypeScriptでLeafletを使用することを特に妨げるものはないはずです(定義があります:https: //github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts

これを妨げるLeafletに特定の問題があると思われる場合は、 http //playground-leaflet.rhcloud.com/ http://playground-leaflet.rhcloud.com/、jsfiddleなどで例を自由に提供してください。


スレッドを作成したため、これを受け取っています。
このメールに直接返信するか、GitHub https://github.com/Leaflet/Leaflet/issues/5224#issuecomment-270119252で表示するか、スレッドhttps://github.com/notifications/unsubscribe-auth/AAZlpz5axhLON3LzzdbHZIgG4DYx4-をミュートします

問題のプラグインで問題を報告する必要があると思います。残念ながら、Leafletチームは他の作成者によるプラグインについての洞察が限られており、時間とリソースが原因で、Leafletのコア外で問題をデバッグすることはできません。

これが役立つかどうかはわかりませんが、同じ問題が発生しました。 しかし、それは私の間違いでした。 私はL.tileLayer()ではなくL.TilelLayerを呼び出していましたが、おそらくこれを一般的な失敗としてドキュメントに追加してください:-( ください)

誰かが同じエラーを起こした場合に備えて、代わりに

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(...);

同じ問題がreactにも存在します

このページは役に立ちましたか?
0 / 5 - 0 評価