首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不变冲突:对象作为React子对象无效(找到:带有键{_40、_65、_55、_72}的对象)

不变冲突:对象作为React子对象无效(找到:带有键{_40、_65、_55、_72}的对象)
EN

Stack Overflow用户
提问于 2020-05-29 08:04:37
回答 1查看 150关注 0票数 0

我有一个平面列表,在平面列表中每个项目都有地理位置。

我从{this.getitemlocation(item.location)}的内部打电话给Flatlist。这里getitemlocation()是函数,item.location是经度和纬度。

我的getitemlocation()

代码语言:javascript
复制
 async getitemlocation(item) {
   let locationstring = item.split(",");
    if(locationstring[0]!="None"&&locationstring[1]!="None"){
    let location = {
      latitude: Number(locationstring[0]),
      longitude: Number(locationstring[1]),
    };
    itemloacation = await Location.reverseGeocodeAsync(location);
    return (
      <Text style={styles.itemLocation} key={item}>
        {itemloacation.name} {"\u2022"} 2.3 km
      </Text>
    );
    }
    else{
      return (
        <Text style={styles.itemLocation}>
          No Location
        </Text>
      );
    }
  }

我正在收到的错误:

不变冲突:对象作为React子对象无效(找到:键{_40、_65、_55、_72}的对象)。如果您打算呈现一个子集合,请使用数组代替.

EN

回答 1

Stack Overflow用户

发布于 2020-05-29 09:03:06

不能像这样返回异步函数。你可以用这样的承诺:

代码语言:javascript
复制
getitemlocation(item){
  return new Promise(async (resolve) => {
    let locationstring = item.split(",");
    if(locationstring[0]!="None"&&locationstring[1]!="None"){
      let location = {
        latitude: Number(locationstring[0]),
        longitude: Number(locationstring[1]),
      };
      itemloacation = await Location.reverseGeocodeAsync(location);
      resolve(
        <Text style={styles.itemLocation} key={item}>
          {itemloacation.name} {"\u2022"} 2.3 km
        </Text>
      )
    }else{
      resolve (
        <Text style={styles.itemLocation}>
          No Location
        </Text>
      );
    }
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62081363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档