Я пробовал тестировать с помощью 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)