繁体   English   中英

接收 object 数组时更新反应 state

[英]Updating react state when receiving an array of object

我正在使用 axios.get 打电话给我的 MongoDB。 我对数据库的响应是一个包含数据库中所有数据的对象数组。 我只是想将每个用户的用户名保存到 state。 我正在尝试将响应(res.data.username)设置为我的 state 但是当我记录我的 state 时,我得到了一个空数组。 PS:没有办法复制我的回复,所以我添加了回复的图片以供参考,如果有更好的方法来显示回复,请告诉我

我回来的回应

const [users, setUsers] = useState([]);
useEffect(() => {
    axios.get('http://localhost:5000/users')
    .then(res => {
        if (res.data.length > 0) {
            console.log(res.data)
            setUsers(user => [...user, res.data.username]);
        }
    })
    
}, [])

res.data 是一个数组。 只需从响应中设置用户名,您可以尝试

setUsers(user => [...user, res.data.map(response => response.username)]); 

由于users是一个数组,因此将数组传递给setUsers 使用解构来提高可读性和简化性。

const [users, setUsers] = useState([]);
useEffect(() => {
  axios.get("http://localhost:5000/users").then((res) => {
    if (res.data.length > 0) {
      console.log(res.data);
      setUsers(res.data.map(({ username }) => username));
    }
  });
}, []);
setUsers(res.data.map(({ username }) => username));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM