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)
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)
| 归档时间: |
|
| 查看次数: |
3668 次 |
| 最近记录: |