react-native-maps:动态加载标记:数组不是函数

时间:2019-07-10 01:45:49

标签: react-native

我能够获得包含标记坐标的对象。但是,渲染它时,如标题所示,出现了错误。

try {
            const value = await AsyncStorage.getItem('@myData')
            if(value !== null) {
              const parseData = JSON.parse(value);
              const llat = parseFloat(parseData[0].location[0].lat);
              const llon = parseFloat(parseData[0].location[0].lon);
              const locs = parseData[0].location;
              const markersS = [];
              for (let i =0; i < locs.length; i++){
                    markersS.push({
                        coordinate: {
                           latitude: parseFloat(locs[i].lat),
                           longitude: parseFloat(locs[i].lon)
                        }
                    })
              }
              this.setState({
                lat : llat,
                lon :llon,
                region: {
                    latitude: llat,
                    longitude: llon,
                    latitudeDelta: 0.015,
                    longitudeDelta: 0.0121
                },
                location : locs,
                ready: true,
                markers: markersS
              },()=>{

                  alert(JSON.stringify(this.state.markers))

              })
            }
          } catch(e) {
            alert(e)
          }

然后像这样渲染:

{this.state.ready && this.state.markers !=null && this.state.markers((item, index) => {
                    <Marker
                         coordinate = {item.coordinate}
                         pinColor = {'blue'}
                         description = {'Home Address'}
                     />

                    })
                }

我希望将标记加载到地图上

1 个答案:

答案 0 :(得分:1)

问题与this.state.markers((item, index) => {有关。您应该改为使用map函数,如下所示

this.state.markers.map((item, index) => {
...