Реагировать на асинхронные сценарии без ошибок - PullRequest
0 голосов
/ 12 сентября 2018

Я пробовал тестировать с помощью response-async-script-loader иact-async-script, но когда я отключаю интернет, чтобы проверить перехват ошибок, отображаются мои маркеры, но нет карт и ошибок. Я также добавил функцию перехвата ошибок, как показано ниже, но она появляется первой, каждый раз, перед загрузкой карты, с включенным или отключенным Интернетом. Ниже приведен пример пакета npm с незначительными правками

export class App extends Component {
  constructor(props) {
      super(props)
      this.state = {
        map: {},
        markers: markers
      }
  }

  componentWillReceiveProps ({ isScriptLoaded, isScriptLoadSucceed }) {
      if (isScriptLoaded && !this.props.isScriptLoaded) {
        // load finished
        if (isScriptLoadSucceed) {
          window.initMap()
        }
        else {this.props.onError(), window.alert('Google maps not loaded, try again')}
      }
    }

  async componentDidMount () {
    const { isScriptLoaded, isScriptLoadSucceed } = this.props
    if (isScriptLoaded && isScriptLoadSucceed) {
      window.initMap()
    }
  }

  render() {
    const {  markers } = this.state
    return (
    <div>
      <div id="map" />
    </div>
    )
  }
}
export default scriptLoader(
  [
    'https://maps.googleapis.com/maps/api/js?libraries=places,drawing,geometry&key={my api key}&v=3.32&callback=initMap'
  ]
)(App)

Также говорится, что функция initMap не определена, если я не назначил окно, я попытался связать с приведенным ниже, но я получаю связывание неопределенным.

this.initMap = this.initMap.bind(this)
...