FlatList
реагирует на собственный компонент, ожидающий, что данные будут массивом.Вы передаете его как объект, даже если вы объявили в подрядчике как массив;но в componentDidMount
вы переопределяете объект.Вы можете изменить его на массив объектов.
console.log(this.state.dataArray[0])
определенно дают undefined
, потому что это не массив
export default class ListGroupScreen extends Component {
constructor(){
super();
this.state = {
data: null,
}
}
componentDidMount() {
const that = this;
firebase.database().ref('/groups').on('child_added', function (data){
that.setState({
data: data.val()
})
})
}
render() {
const dataArray = Object.values(this.state.data)
return (
<List>
<FlatList
data={dataArray}
renderItem={({ item }) => (
<ListItem
title={<Text>{item.groupTitle}</Text>}
time={<Text>{item.groupTime}</Text>}
/>
)}
/>
</List>
);
}
}