无法在 useEffect 挂钩内设置状态

Mak*_*and 2 reactjs axios react-hooks use-effect use-state

我可以看到包含用户数组的响应对象,但似乎 setState 在钩子内不起作用useEffect()

这是请求代码。

     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();
     },[])
Run Code Online (Sandbox Code Playgroud)

wan*_*v87 5

setUsers()是异步方法,无法users立即获取更新后的值setusers()

setUsers([...users,data]);
console.log(users); // This will console old value of users
Run Code Online (Sandbox Code Playgroud)

您应该使用useEffect添加users依赖项来检查 的更新值users

useEffect(() => {
  console.log(users);
}, [users]);
Run Code Online (Sandbox Code Playgroud)