Javascript Lifecycle React组件,带有即时加载组件
所以,让我们谈谈组件的生命周期 我有我的模型文件名是Firebase.js,里面有我所有的方法可以触发我的数据 Firebase.js 导出常量getUserShare==>{ 设arr=[]; db.ref`/music/${userID}`。onvalue,快照,key=>{ snapshot.forEachitems=>{ 让元素=items.val; arr.pushelement; }; }; 返回arr;Javascript Lifecycle React组件,带有即时加载组件,javascript,html,reactjs,Javascript,Html,Reactjs,所以,让我们谈谈组件的生命周期 我有我的模型文件名是Firebase.js,里面有我所有的方法可以触发我的数据 Firebase.js 导出常量getUserShare==>{ 设arr=[]; db.ref`/music/${userID}`。onvalue,快照,key=>{ snapshot.forEachitems=>{ 让元素=items.val; arr.pushelement; }; }; 返回arr; }; 我发现异步操作处理存在问题 将getUserShare方法更改为接受回
}; 我发现异步操作处理存在问题 将getUserShare方法更改为接受回调:
export const getUserShare = (callback) => {
db.ref(`/music/${userID()}`).on("value", (snapshot, key) => {
const arrSharing = [];
snapshot.forEach(items => {
let element = items.val();
arrSharing.push(element);
});
callback(arrSharing);
});
};
然后在Profile.js中执行此操作:
您需要显示arrSharing是如何更新的。我使用返回数据的方法更新了帖子,初始状态为:是,它已更新,因此当我在初始状态下使用console.logthis.state.arrSharing时,或者在componentDidMount中,我拥有所有数据,但是渲染不起作用我有这个错误:snapshot.map在运行组件时不是一个函数,你知道上帝吗?我觉得你长得像他@乔纳森:哈哈,你今天做了什么
this.state = {
arrSharing: [],
}
componentDidMount() {
getUserShare((arrSharing) => {
this.setState({ arrSharing })
})
}