javascript - 无法读取未定义的属性“getDomRef”
问题描述
我正在尝试在单击按钮时在对话框中添加 GMap。当我将地图的容器放置在任何视图中时,它会正确呈现,但是当在对话框中打开它时,主题中提到的问题每次都会出现。
我在对话框中使用了以下控件。
<VBox id="mapDiv" fitContainer="true" justifyContent="Center" alignItems="Center" width="50%" height="10rem"></VBox>
下面是我在 onclick 函数中使用的代码
setTimeout(
function () {
var map = new google.maps.Map(sap.ui.getCore().byId('mapDiv').getDomRef(), {
center: {
lat: -34.397,
lng: 150.644
},
zoom: 20
});
var infoWindow = new google.maps.InfoWindow;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
infoWindow.setPosition(pos);
infoWindow.setContent('Location found.');
infoWindow.open(map);
map.setCenter(pos);
});
}
}, 10000);
解决方案
通过使用Fragment.byId("idValidationFrag", "mapDiv")
* 而不是sap.ui.getCore().byId("mapDiv")
.
*Fragment
模块所需"sap/ui/core/Fragment"
。
推荐阅读
- reactjs - 错误:在 WSL2 上运行纱线故事书时产生 wslvar ENOENT
- ruby-on-rails - Rails 6 从 turbolinks 升级到 turbo。如何在 application.js 中要求 turbo-rails?
- javascript - 如何使用页面 Reactjs 中其他选择的值过滤选择
- jupyter-notebook - 在基于 SageMaker 的 Jupyter Notebook 上安装 Voila
- hbase - Apache Phoenix - 使用附加计算字段在现有凤凰表上创建视图
- vue.js - VueJs Bulma Toast 将消息附加到按钮
- spring-boot - 一些测试运行后测试容器失去连接
- swift - 如何处理 RxSwift Zip 运算符中的错误
- reactjs - React:当 url 随 useEffect、react-router 改变时更新变量
- html - 如何让 React 头盔与 # href 一起使用?