Salesforce Lightning Web组件专家超级徽章:挑战7
我在解决挑战7时遇到问题,我在JS文件中有必需的导入和必需的函数。仍然#Trailhead给出错误: 在组件boatsNearMe控制器中找不到getLocationFromBrowser()函数。确保组件是根据要求创建的,包括使用“getCurrentPosition()”获取导航器的地理位置、带有“position=>”的箭头符号、从位置获取坐标,并使用适当的大小写敏感度将它们分配给控制器的属性“latitude”和“longitude” ----删除了代码部分以遵守Trailhead的策略----Salesforce Lightning Web组件专家超级徽章:挑战7,salesforce,salesforce-lightning,lwc,Salesforce,Salesforce Lightning,Lwc,我在解决挑战7时遇到问题,我在JS文件中有必需的导入和必需的函数。仍然#Trailhead给出错误: 在组件boatsNearMe控制器中找不到getLocationFromBrowser()函数。确保组件是根据要求创建的,包括使用“getCurrentPosition()”获取导航器的地理位置、带有“position=>”的箭头符号、从位置获取坐标,并使用适当的大小写敏感度将它们分配给控制器的属性“latitude”和“longitude” ----删除了代码部分以遵守Trailhead的策
我想这是我在代码中遗漏的东西。验证代码非常挑剔。如果你去掉单词position周围的括号,我认为它会起作用。你对地理位置纬度和经度的引用缺少一个“u” 它们是这样的(单下划线)
rowBoat.Geolocation\u lation\u s
这需要像这样(双下划线)
rowBoat.地理位置纬度
我还没有看完所有的代码,但至少这些代码看起来是错误的。
另外,不确定在这种情况下是否需要@track
。您可以尝试2次更改以通过挑战
从getCurrentPosition的回调函数中删除position周围的括号
按照以下步骤更正mapMarkers创建代码
传递给createMapMarkers
的数据格式如下:
“[{”attributes:{”type:“Boat_uuuuc”,“url:“/services/data/v48.0/sobjects/Boat_uuuc/a022w000006RA28AAG”},“Name:“sania”,“Geolocation_uulation_uuus:”24.8513290,“geology_uuuuuuuuuuuuuuuuuus:”119.4862410,“Id:”a022w000006RA28AAG“},{”attributes:“{”type:”Boat:“Boat_uuuuuc”,“url:”services/data/v48.0/sobjects/Boat_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,“地理位置经纬度”:22.6216820,“地理位置经纬度”:113.7630620,“Id:“a022w000006RA2DAAW”}”
因此,您可以使用JSON.parse(boatData)对其进行解析,然后对其调用map()函数
this.mapMarkers = JSON.parse(boatData).map((rowBoat) => {
return {
location: {
Latitude: rowBoat.Geolocation__Latitude__s,
Longitude: rowBoat.Geolocation__Longitude__s
},
title: rowBoat.Name
};
});
并且一定要使用双下划线从地理位置访问纬度和经度,如上图所示
还有一点,在创建mapMarkers之前将isLoading设置为true,在createMapMarkers方法中创建isLoading之后将其设置为false
希望这对您有用:)请在您的回答中添加更多信息和来源我在boatData之前缺少JSON.parse语句。感谢帮助@Arin。很高兴知道它正在工作,您能够通过挑战@the_phantom