gpt4 book ai didi

javascript - React-Native Firebase 使用 FlatList 显示对象数组

转载 作者:行者123 更新时间:2023-12-01 01:00:18 25 4
gpt4 key购买 nike

我尝试显示一些 Firebase 数据,但没有显示任何内容。

export default class ListGroupScreen extends Component {
constructor(){
super();

this.state = {
dataArray: [],
}

}

componentDidMount() {
let that = this;

firebase.database().ref('/groups').on('child_added', function (data){
that.setState({
dataArray: data.val()
})

})
}

render() {

console.log(this.state.dataArray);
console.log(this.state.dataArray[0]);

return (
<List>
<FlatList
data={this.state.dataArray}
renderItem={({ item }) => (
<ListItem
title={<Text>{item.groupTitle}</Text>}
time={<Text>{item.groupTime}</Text>}
/>
)}
/>
</List>
);
}
}

console.log(this.state.dataArray);给我数据库中的所有项目,但是 console.log(this.state.dataArray[0]);给我未定义的。如下所示:enter image description here

数据库如下所示:enter image description here

最佳答案

原因是 .on('child_added')groups 节点中的每个项目返回一个对象。

在您的情况下,您需要使用 .once('value'),它将返回一个包含您必须转换的项目的集合(对象)放入数组中:

firebase.database().ref('/groups').once('value', function(snapshot) {
var returnArray = [];

snapshot.forEach(function(snap) {
var item = snap.val();
item.key = snap.key;

returnArray.push(item);
});

// this.setState({ dataArray: returnArray })
return returnArray;
});

关于javascript - React-Native Firebase 使用 FlatList 显示对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com