我想显示一些数据,例如日期,时间,...和产品(名称,类型,价格)。现在,我在item.product.name
中使用flatlist
时什么也看不到。
如何显示产品名称?
(平面列表需要对象,因此我通过Object.values(responseJson)
将数据更改为对象)
componentDidMount(){
fetch('https://example.com/',{
method:'POST',
headers:{
'Accept':'application/json',
'Content-type':'application/json'
},
body:JSON.stringify({
username:this.state.username,
orderid:this.state.orderid,
})
}).then((response)=>response.json()).
then((responseJson)=>{
if(responseJson === "none"){
this.setState({
noneorder:true,
});
}else {
this.setState({
dataSource:Object.values(responseJson),
});
}
}).catch((error)=>console.error(error));
}
Json(更改为对象之前):
{"20":{"id":"20","date":"12/11","time":"18:29:59","products":"{\"164\":{\"id\":\"164\",\"name\":\"\\u067e\\u06cc\\u0631\\u0627\\u0647\\u0646\",\"type\":\"\\u0627\\u062a\\u0648\",\"product\":\"1\",\"count\":\"1\",\"price\":3500}}","sum":"3500","status":"paid"}}
平面列表:
<FlatList
data={this.state.dataSource}
keyExtractor={(item, index) => item.id}
renderItem={({item}) =>
<View>
<Text>{item.date}</Text>
<Text>{item.products.name}</Text>
</View>
}
/>
结果为: 12/11 ,但应为 12/11 mynameofproduct