将Hook useState空数组反应成设置新数组

时间:2020-10-16 09:56:30

标签: reactjs

我试图分配useState方法setUsers数据数组。我想将获取用户数据数组分配给useState方法的初始数组

我的代码

   const [users, setUsers] = useState([]);
        
        useEffect(() => {
            axios.get('http://localhost:8000/api/users')
                .then(res => {
                    setUsers(u => [...u, res.data]);
                });
            console.log(users);
        },[]);

1 个答案:

答案 0 :(得分:1)

axios get是异步运行的,因此console.log语句将在成功运行setUsers之前运行。

为了更好地检查,请将console.log移到then()内:

    const [users, setUsers] = useState([]);
    
    useEffect(() => {
        axios.get('http://localhost:8000/api/users')
            .then(res => {
                setUsers(u => [...u, res.data]);
                console.log(users);
            });
        
    },[]);