Javascript 在FlatList中获取Promise作为返回值
使用react nativeJavascript 在FlatList中获取Promise作为返回值,javascript,react-native,es6-promise,Javascript,React Native,Es6 Promise,使用react nativeFlatList显示值,如: <FlatList data={this.state.oldLocations} showsVerticalScrollIndicator={false} keyExtractor={item => item.id} renderItem={({item,index}) => <View key={index} sty
FlatList
显示值,如:
<FlatList
data={this.state.oldLocations}
showsVerticalScrollIndicator={false}
keyExtractor={item => item.id}
renderItem={({item,index}) =>
<View key={index} style={styles.flatview}>
<GoogleStaticMap
latitude={item.latitude.toString()}
longitude={item.longitude.toString()}
zoom={13}
size={{ width: 450 , height: 250 }}
apiKey={'MY_API_KEY'}
/>
<Text style={styles.name}>{item.id}</Text>
<Text style={styles.email}>{item.latitude}</Text>
<Text style={styles.email}>{item.longitude}</Text>
{<Text style={styles.email}>{this.getAddress(item.latitude, item.longitude)})}</Text>}
</View>
}
/>
异步调用不能作为呈现的一部分返回和呈现。相反,您需要在渲染外部执行异步加载,然后将检索到的数据设置为渲染状态 在您的情况下,您需要为
平面列表中的每个项目使用一个有状态组件。此组件将处理加载并在加载后显示结果
e、 g:
类MapListItem扩展了React.Component{
状态={
地址:'',
}
componentDidMount(){
常数{
项目,,
}=这是道具;
this.getAddress(item.latitude、item.longitude);
}
getAddress=(纬度,液化天然气)=>{
Geocoder.geocodePosition({lat:lat,lng:lng})。然后(res=>{
这是我的国家({
地址:res[0]。格式化地址,
});
});
}
render(){
返回(
//所有地图/详细信息-当前渲染的其他部分
...
{this.state.address}
...
)
}
}
然后您的平面列表renderItem变为:
renderItem={({ item, index }) => (
<MapListItem item={item} index={index} />
)}
renderItem={({item,index})=>(
)}
异步调用无法返回并作为呈现的一部分呈现。相反,您需要在渲染外部执行异步加载,然后将检索到的数据设置为渲染状态
在您的情况下,您需要为平面列表中的每个项目使用一个有状态组件。此组件将处理加载并在加载后显示结果
e、 g:
类MapListItem扩展了React.Component{
状态={
地址:'',
}
componentDidMount(){
常数{
项目,,
}=这是道具;
this.getAddress(item.latitude、item.longitude);
}
getAddress=(纬度,液化天然气)=>{
Geocoder.geocodePosition({lat:lat,lng:lng})。然后(res=>{
这是我的国家({
地址:res[0]。格式化地址,
});
});
}
render(){
返回(
//所有地图/详细信息-当前渲染的其他部分
...
{this.state.address}
...
)
}
}
然后您的平面列表renderItem变为:
renderItem={({ item, index }) => (
<MapListItem item={item} index={index} />
)}
renderItem={({item,index})=>(
)}
您想在哪里调用该函数?在平面列表中
获取lat的地址,lng您得到的返回值是什么?当前显示的是什么?当用户按平面列表项之一时,是否要调用它?错误:不变冲突:不变冲突:对象作为React子对象无效(找到:具有键{u 40,{u 65,{u 55,{u 72}的对象)。如果要呈现子对象集合,请改用数组。
否,我不希望在用户单击时调用它。您希望在何处调用该函数?在平面列表中
要获取lat的地址,LNGW您得到的返回值是什么?当前显示的是什么?当用户按平面列表项之一时,是否要调用它?错误:不变冲突:不变冲突:对象作为React子对象无效(找到:具有键{u 40,{u 65,{u 55,{u 72}的对象)。如果要呈现子对象集合,请改用数组。
no我不希望它在用户单击时调用。
renderItem={({ item, index }) => (
<MapListItem item={item} index={index} />
)}