5

我无法解决挑战 7 我在 JS 文件中有所需的导入和所需的函数。仍然 #Trailhead 给出错误:

我们在组件boatsNearMe 控制器中找不到 getLocationFromBrowser() 函数。确保组件是根据要求创建的,包括使用“getCurrentPosition()”获取导航器的地理位置、使用“position =>”的箭头符号、从位置获取坐标并将它们分配给控制器的属性'latitude' 和 'longitude',使用适当的区分大小写。

错误

---- 删除了 CODE 部分以遵守 Trailhead 的政策 ----

我想这是我在代码中遗漏的东西。

4

3 回答 3

4

您对地理位置纬度和经度的引用缺少“_”

你有他们这样的(单下划线);

rowBoat.Geolocation_Latitude_s

这需要是这样的(双下划线);

rowBoat.Geolocation__Latitude__s

我没有浏览所有代码,但至少这些代码在您的代码中看起来是错误的。此外,不确定@track在这种情况下(不再)是否明确需要。

于 2020-06-30T22:11:52.487 回答
2

验证码非常挑剔。如果您删除单词位置周围的括号,我认为它会起作用。

于 2020-06-28T22:29:04.377 回答
1

您可以尝试 2 种更改来通过挑战,

  1. 从 getCurrentPosition 的回调函数中删除位置周围的括号

  2. 按照以下步骤纠正mapMarkers创建代码传递给的数据createMapMarkers格式如下,

    '[{"attributes":{"type":"Boat__c","url":"/services/data/v48.0/sobjects/Boat__c/a022w000006RA28AAG"},"Name":"三亚","地理位置__Latitude__s": 24.8513290,"Geolocation__Longitude__s":119.4862410,"Id":"a022w000006RA28AAG"},{"attributes":{"type":"Boat__c","url":"/services/data/v48.0/sobjects/Boat__c/a022w000006RA2DAAW "},"Name":"Longxue","Geolocation__Latitude__s":22.6216820,"Geolocation__Longitude__s":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 方法中创建之后将其设置为 false。

希望这对你有用:)

于 2020-07-01T04:16:29.017 回答