我有一个依赖于Google Maps js API的React组件。这个API是在App.js页面的头部使用script标签导入的。当我尝试加载包含此组件的页面时,它会失败,并声称脚本未加载。但如果我先打开不包含此组件但引用了脚本的不同页面,然后再转到包含此组件的页面,它就可以工作。
这使我想到问题可能是组件加载时脚本尚未加载。不过,我认为页面应该在获取脚本时阻塞加载。我不太确定如何解决这个问题。
App.js:
在上述例子中,FooScreen包含这个组件,而BarScreen则不包含。如果我直接打开FooScreen,会失败;但如果我先打开BarScreen,再从中跳转到FooScreen,则可以成功。
这使我想到问题可能是组件加载时脚本尚未加载。不过,我认为页面应该在获取脚本时阻塞加载。我不太确定如何解决这个问题。
App.js:
class App extends Component {
render() {
return (
<Router>
<div>
<Helmet>
<script
type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDSn_vNbNZzrcFxl8bV3MH1j0kuoLVsOCQ&libraries=places"
/>
</Helmet>
<div className="pageContent">
<Route exact path="/foo" component={FooScreen} />
<Route exact path="/bar" component={BarScreen} /
</div>
</div>
</Router>
);
}
}
export default App;
在上述例子中,FooScreen包含这个组件,而BarScreen则不包含。如果我直接打开FooScreen,会失败;但如果我先打开BarScreen,再从中跳转到FooScreen,则可以成功。
bundle.js
脚本或者无论你把自己编译的脚本叫什么之前添加谷歌地图脚本了吗? - Tholle