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怎么用?你能说得更具体些吗?