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.
});
Другие вопросы по тегам