Voglio caricare il Google APIs client library all'interno del mio index.html
e lo onLoad='someMethod'
invocherà un metodo in un file javascript separato. Questo metodo verrà quindi stampato sulla console.Come utilizzare l'oggetto finestra in ReactJS?
La libreria client viene caricata senza problemi ma il messaggio non viene stampato dalla console e penso che sia perché il metodo non viene richiamato affatto.
Ecco il mio index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
<div id="app"></div>
<script src="lib/vendors.js"></script>
<script src="build/bundle.js"></script>
<script src="https://apis.google.com/js/client.js?onload=handleGoogleClientLoad"></script>
</body>
Ecco il file javascript che contiene il metodo handleGoogleClientLoad
:
import React from 'react';
import ReactDOM from 'react-dom';
import {Button} from 'react-bootstrap';
class MyApp extends React.Component {
handleGoogleClientLoad() {
console.log('Success on load');
}
render() {
return (
<div>
<Button>Click Me</Button>
</div>
);
}
}
const app = document.getElementById('app');
ReactDOM.render(<MyApp />, app);
Se questo è stato semplice javascript il metodo sarebbe simile a questa:
window.handleGoogleClientLoad = function() {
// Log to the console
};
C'è qualcosa in es6 che è simile all'oggetto window
.
Non ho ancora provato a usare 'loadjs', ma ho aggiunto il metodo' componentDidMount() 'e tutto funziona perfettamente. Grazie! – hellomoto
Che ne dici di aggiungere l'elemento script API di Google da caricare prima che venga caricato il materiale reattivo? ' ' – Bwaxxlo