Я хочу показать некоторые данные, такие как дата, время, ... и продукты (имя, тип, цена). Теперь я ничего не вижу, когда использую 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:
<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