In meiner Rails App verwende ich react.js (react-rails gem), um die Client-Seite meiner Anwendung zu erstellen.
Ich möchte Google Maps API verwenden, um einige Geolocation-Funktion zu implementieren.Wie kann Google Maps API Lade-Skript angewiesen werden, im Componet React nach Callback zu suchen?
class HomePage extends React.Component {
constructor(props) {
super(props)
}
initGeoTools(){
console.log('callback invoked');
}
render() {
return(
<div>
//..
<script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initGeoTools"
async defer></script>
</div>
);
}
}
initGeoToolsis keine Funktion - das die API-Skript bedeutet in diesem Bereich Callback-Funktion sehen tut.
Ich habe irgendwo gelesen, dass es diese Funktion im Fensterbereich sehen sollte. Also habe ich versucht, es so zu hacken:
class HomePage extends React.Component {
constructor(props) {
super(props)
}
componentWillMount(){
window.initGeoTools = function(){
console.log('callback invoked');
}
}
render() {
return(
<div>
//..
<script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initGeoTools"
async defer></script>
</div>
);
}
}
die Tat, das funktioniert aber Sinn in diesem Zusammenhang doesnt zu machen, da von der Funktion definiert auf Fenster habe ich keinen Zugriff Komponente Sachen zu reagieren.
In einer Callback-Funktion möchte ich den Status api_ready setzen: true um anzuzeigen, dass die API erfolgreich geladen wurde.
Die Frage ist also, wie kann ich API-Skript zu Callback-Funktion innerhalb der React-Komponente?