[英]cannot set state inside useEffect hook
I can see response object containing array of users, but it seems setState doesn't work inside useEffect()
hook.我可以看到响应 object 包含用户数组,但似乎 setState 在
useEffect()
钩子中不起作用。
This is request code.这是请求代码。
const [users,setUsers] = useState([]);
const getUsers=async()=>{
await axios.get(API_URL,{
headers:{
'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*'
}
})
.then((res)=>{
const data = res.data.users;
console.log(data);
setUsers([...users,data]);
console.log(users);
})
.catch((err)=>{
console.log(err);
})
}
useEffect(()=>{
getUsers();
},[])
setUsers()
is the asynchronous method, and you can't get the updated value of users
immediately after setusers()
. setUsers()
是异步方法,不能在setusers()
之后立即获取users
的更新值。
setUsers([...users,data]);
console.log(users); // This will console old value of users
You should use useEffect
with adding a users
dependency to check the updated value of users
.您应该使用
useEffect
并添加users
依赖项来检查users
的更新值。
useEffect(() => {
console.log(users);
}, [users]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.