Reactjs 在呈现时调用Componentwillunmount

Reactjs 在呈现时调用Componentwillunmount,reactjs,react-native,Reactjs,React Native,我正在为react native使用firebase数据库。我的主要组件有一个用户添加的朋友列表。当我转到主屏幕时,我将添加朋友添加到firebase数据库 getUser=async useremail=>{ let ref=等待firebase.database().ref('users'); let query=wait ref.orderByChild('email').equalTo(useremail); 试一试{ 等待查询。在('value',快照=>{ snapshot.forE

我正在为react native使用firebase数据库。我的主要组件有一个用户添加的朋友列表。当我转到主屏幕时,我将添加朋友添加到firebase数据库

getUser=async useremail=>{
let ref=等待firebase.database().ref('users');
let query=wait ref.orderByChild('email').equalTo(useremail);
试一试{
等待查询。在('value',快照=>{
snapshot.forEach(子项=>{
this.setState({friends:[]});
让朋友=[];
for(让k输入child.val().friends){
friends.push(child.val().friends[k]);
}
如果(此.state.isMounted){
这是我的国家({
朋友:朋友,,
孤岛加载:false,
});
}
});
});
}捕获(错误){}
};
问题是在渲染时调用了
componentWillUnmount()
,并显示以下警告:

警告:无法对已卸载的组件执行react状态更新


如果您可以在调用此函数的地方共享源代码,则很容易。永远不要使用isMounted inside state,isMounted用于检查安装和卸载组件以使用和设置组件状态,以及使用isMounted inside component state的错误方法。在构造类之前的component类之后声明isMounted,并在使用异步函数的整个组件中使用它:this.IsMountedSmounted是一种反模式,facebook建议不要使用@SDushan。此函数从componentdidmountRemoved调用,但仍然会出现错误。