Nach der official Highcharts documentation Sie manuell die die Karte Skript enthalten:
Kurz gesagt, die GeoJSON Version der Karte in einem Script-Tag in die Seite geladen wird. Dieses GeoJSON-Objekt wird dann im Objekt Highcharts.maps registriert und im Setup des Diagramms auf die Option mapData angewendet.
Wie Sie in the fiddle Sie erwähnt sehen können, enthalten sie die Karte mit dem Skript-Tag:
<script src="https://code.highcharts.com/mapdata/custom/world.js"></script>
Durch das obige Skript enthalten, die Karte in Highcharts.maps['custom/world']
zur Verfügung steht.
Also im React-Modul müssen Sie manuell die gewünschten Karten hinzufügen, wie in der von Ihnen erwähnten Demo. Zum Beispiel, wenn Sie die Weltkarte hinzufügen möchten, dann:
- es von hier: https://code.highcharts.com/mapdata/custom/world.js
Highcharts.maps["custom/world"] =
Ersetzen mit module.exports =
in der obigen Datei.
- Legen Sie die Karte in Ihrer Komponente
const map = require('./maps/world');
- Dann können Sie es in der Config gibt es keine Modul
mapData: map
Ich verstehe, dass Sie den obigen Vorgang überspringen wollen, sondern verweist auf Reagieren, der folgendes beinhaltet die Karte.
Eigentlich ist es eine hackish, wie Sie es tun können ... In der HTML-Datei, in der die Skripte reagieren enthalten sind, dort können Sie world.js Script-Tag enthalten, aber zuerst müssen Sie sicherstellen, dass Highcharts.maps-Objekt-Array existiert. Auf diese Weise werden Sie die Karten extern verwenden.
Allerdings ist dies eine schlechte Praxis, weil Ihre React-Komponenten von diesem Kartenskript abhängig sein werden.
Gute Praxis ist Ihre Lieferantenmodule über Paketmanager zu verwalten und die Module in den Komponenten zu referenzieren.Auf diese Weise sind die Komponenten selbstbeschreibend
Ich bin mir nicht sicher, ob ich Ihre Frage verstehe. Daten für eine Karte in Highcharts reagieren ist nur ein Objekt, bereit zu importieren, wenn es notwendig ist. Wenn Sie es brauchen, importieren Sie es als normales Modul. – morganfree
Wenn ich npm zur Installation von Highcharts verwende, ist das Objekt Highcharts.maps leer. – es3735746