Reactjs 正在更新useEffect中的组件状态

Reactjs 正在更新useEffect中的组件状态,reactjs,Reactjs,我第一次在胡克附近玩。在我的组件中,我请求useffect中的一些数据,然后希望将这些数据保存到本地状态。我尝试在useffect的内部使用setUser,但状态从未更新。我试过了,没有第二个参数[],但是我得到了一个无限循环。我知道setState是异步的,以前您可以指定一个函数作为setState的第二个参数,该参数将在状态更新时运行 我想知道更新useffect import React,{useffect,useState}来自“React”; 从“react router dom”导入

我第一次在胡克附近玩。在我的组件中,我请求
useffect
中的一些数据,然后希望将这些数据保存到本地状态。我尝试在
useffect
的内部使用
setUser
,但状态从未更新。我试过了,没有第二个参数
[]
,但是我得到了一个无限循环。我知道
setState
是异步的,以前您可以指定一个函数作为
setState
的第二个参数,该参数将在状态更新时运行

我想知道更新
useffect

import React,{useffect,useState}来自“React”;
从“react router dom”导入{withRouter};
从“../../constants/firebase”导入{db};
功能简介(道具){
const[user,setUser]=useState(null);
const{username}=props.match.params;
useffect(()=>{
db.collection(“用户”)。其中(“用户名”,“用户名=”,用户名)
.get()
.然后((querySnapshot)=>{
querySnapshot.forEach((doc)=>{
console.log(doc.data());//数据恢复正常
setUser(doc.data());
console.log(user);//user仍然为null
});
})
.catch((错误)=>{
log(“获取用户时出错:”,错误);
});
},[用户名])
返回配置文件
}
使用路由器导出默认值(配置文件);

尝试将useffect的第二个参数从
[username]
更改为
[props.match.params.username]
您可以使用另一个
useffect
,该参数将在
用户更新时运行

useEffect(() => {
  console.log(user);
  ... 
}, [user]);

user
更新时,您可以使用另一个
useffect
来运行。这将变成无限loop@DEEPAK怎么用?你能说得更具体些吗?