Javascript 使用映射函数写入React组件时,对象作为React子对象无效

Javascript 使用映射函数写入React组件时,对象作为React子对象无效,javascript,reactjs,react-native,map-function,Javascript,Reactjs,React Native,Map Function,我正在构建一个react原生应用程序,它具有地图功能,可以在地图上为一系列不同的地方创建标记。为此,我使用API获取坐标,因此需要使用异步函数: <MapView style={styles.mapStyle}> {this.state.isLoading ? null : this.state.places.map(async (place) => { const coords = await fetchCoords(place) re

我正在构建一个react原生应用程序,它具有地图功能,可以在地图上为一系列不同的地方创建标记。为此,我使用API获取坐标,因此需要使用异步函数:

<MapView style={styles.mapStyle}>
  {this.state.isLoading ? null : 
    this.state.places.map(async (place) => {
      const coords = await fetchCoords(place)

      return (
        <MapView.Marker
          coordinate = {coords}
        />
      )
    })
  }
</MapView>

{this.state.isLoading?空:
this.state.places.map(异步(位置)=>{
const coords=等待fetchCoords(位置)
返回(
)
})
}

但是这段代码给出了错误:
不变冲突:对象作为React子对象无效(找到:具有键{u 40,{u 65,{u 55,{u 72}的对象)
。我猜这个错误是因为我实现的异步映射函数是错误的。应该是什么?

传递给市场组件的坐标道具需要是一个对象或数组(表示纬度/经度、x/y等),但是传递的是一个承诺


“const coords=await fetchCoords(place)”部分不应直接使用渲染方法,而应在其他地方进行,如componentDidMount,然后保存到状态,或在更高阶的组件中进行异步调用,并将结果作为道具传递。这将确保fetchCoords函数不会在每次重新渲染时被不必要地调用。

您是否控制了coords变量?它是否返回您所需的值?