gapi this.fl не является функцией
Я пытаюсь загрузить Google API в простое приложение React, но продолжаю получать эту досадную ошибку - см. Ниже:
Uncaught TypeError: this.fl is not a function
at _.C.ria (cb=gapi.loaded_0:82)
at _.C.<anonymous> (cb=gapi.loaded_0:596)
at h.r2 (cb=gapi.loaded_0:82)
at xs (cb=gapi.loaded_0:85)
at Wq (cb=gapi.loaded_0:85)
at _.C.uea (cb=gapi.loaded_0:85)
at Ap (cb=gapi.loaded_0:78)
at <anonymous>
Даже если я попытаюсь включить некоторые операторы консоли в свой код, я кратко увижу их при выполнении, а затем они очищаются и заменяются этим сообщением об ошибке.
Вот мой App.js
:
import React from 'react'
import firebase from 'firebase'
import './App.css'
import AppHeader from '../AppHeader'
var GoogleAuth
class App extends React.Component {
componentDidMount() {
firebase.auth().onAuthStateChanged(user => this.setState({user}))
const script = document.createElement('script')
script.src = 'https://apis.google.com/js/api.js'
script.onload = () => {
if (!GoogleAuth) {
window.gapi.load('client', () => {
window.gapi.client.init({
clientId: 'XXXX',
scope: 'https://www.googleapis.com/auth/calendar'
})
.then(() => GoogleAuth = window.gapi.auth2.getAuthInstance())
})
}
}
document.head.appendChild(script)
}
render() {
return (
<AppHeader user={this.state.user} />
)
}
}
export default App
Цени любую помощь!
1 ответ
Init возвращает экземпляр GoogleAuth. Так что вместо того, чтобы пытаться убрать AuthInstance() из окна, как вы делаете здесь
window.gapi.client.init({
clientId: 'XXXX',
scope: 'https://www.googleapis.com/auth/calendar'
})
.then(() => GoogleAuth = window.gapi.auth2.getAuthInstance())
Я должен был использовать возврат от init
window.gapi.client.init({
clientId: 'XXXX',
scope: 'https://www.googleapis.com/auth/calendar'
})
.then(GoogleAuth => {
// no need to call getAuthInstance, you have it as the resolution of the init promise
// GoogleAuth.signIn();
// GoogleAuth.signOut();
// etc.
});