我有一个平面列表,在平面列表中每个项目都有地理位置。
我从{this.getitemlocation(item.location)}的内部打电话给Flatlist。这里getitemlocation()是函数,item.location是经度和纬度。
我的getitemlocation()
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}的对象)。如果您打算呈现一个子集合,请使用数组代替.
。
发布于 2020-05-29 09:03:06
不能像这样返回异步函数。你可以用这样的承诺:
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>
);
}
}
https://stackoverflow.com/questions/62081363
复制相似问题