Chcę załadować Google APIs client library wewnątrz mojego index.html
, a onLoad='someMethod'
wywoła metodę w oddzielnym pliku javascript. Ta metoda zostanie wydrukowana na konsoli.Jak używać obiektu window w ReactJS?
Biblioteka klientów jest ładowana bez żadnych problemów, ale komunikat nie jest drukowany przez konsolę i myślę, że dzieje się tak, ponieważ metoda nie jest w ogóle wywoływana.
Oto mój 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>
Oto plik JavaScript, który zawiera metodę 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);
Jeśli to był zwykły javascript metoda będzie wyglądać następująco:
window.handleGoogleClientLoad = function() {
// Log to the console
};
Czy jest coś w języku es6 podobne do obiektu window
.
Nie próbowałem jeszcze używać 'loadjs', ale dodałem metodę' componentDidMount() 'i wszystko działa idealnie. Dzięki! – hellomoto
Co powiesz na dodanie elementu skryptu Google API do załadowania zanim załaduje się materiał reagowania? ' ' – Bwaxxlo