我将数据存储在firebase和setState中,this.state.data数组标记为0。
我不知道为什么,我需要你的帮助。
constructor() {
super();
this.state = {
data:[],
}
}
componentDidMount(){
this.getData();
}
getData(){
const arrayItem = [];
firebase.database().ref('data').on('value', (snapshot) =>{
snapshot.forEach(function(childSnap){
arrayItem.push({
key:childSnap.key,
data:childSnap.val()
})
})
})
this.setState({
data:arrayItem
})
}
render() {
{console.log(this.state.data)}
Firebase逻辑是异步的,因此您必须setState
在on
回调内部使用,否则arrayItem
数组将为空。
例
getData() {
firebase
.database()
.ref("data")
.on("value", snapshot => {
const data = [];
snapshot.forEach(function(childSnap) {
data.push({
key: childSnap.key,
data: childSnap.val()
});
});
this.setState({ data });
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句