У меня есть JSON со следующей формой для ~ 50 _источников:
{
"hits": [
{
"_source": {
"name": "henry",
"jobs": ["judge", "lawyer"]
}
},
{
"_source": {
"name": "henry",
"jobs": ["dev", "waitress"]
}
}
// ...
]
}
Благодаря помощи сообщества я извлек каждую работу, как показано ниже:
const result = hits.reduce((acc, item) => acc = [item._source.jobs[0], ...acc], [])
console.log(result) // this is an array
Я извлекк каждому элементу из результата нужно добавить строку (например, «welcome судья»):
for(i in result)
{
var message = 'welcome'+ result[i] //this is a string
}
Итак, теперь я хочу использовать плоский список для отображения моего сообщения:
constructor() {
super()
this.state = { dataSource:'' }
}
componentDidMount() {
fetch('uri')
.then(response => response.json())
.then(json => {
const result = hits.reduce((acc, item) => acc = [item._source.jobs[0], ...acc], []) // this is an array
for(i in result)
{
var message = 'welcome'+ result[i] //this is a string
}
this.setState({ dataSource : messsage})
}
renderItem =({item}) => {
return(
<View>
<Text>item</Text>
</View>)
}
render() {
return (
<View>
<FlatList
data= {[this.state.dataSource]}
renderItem= {this.renderItem}
/>
</View>
);
}
Iполучил только одно сообщение (а не мой список) и предупреждение «отсутствует ключ для элемента»