Javascript 无法在useState挂钩中设置数组

Javascript 无法在useState挂钩中设置数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,这是我的代码,我正在尝试在setUsers中设置数组。数据正确地来自后端,但它没有在hook中设置。请帮助我 const LoadAllUser = () => { const [users, setUsers] = useState([]); const loadUsers = () => { loadalluser() .then((data) => { if (data.error) { console.lo

这是我的代码,我正在尝试在setUsers中设置数组。数据正确地来自后端,但它没有在hook中设置。请帮助我

const LoadAllUser = () => {
  const [users, setUsers] = useState([]);
  const loadUsers = () => {
    loadalluser()
      .then((data) => {
        if (data.error) {
          console.log(data.error);
          // setusers(data.error);
        } else {
          setUsers(data);
        }
      })
      .catch((eror) => console.log("error is here"));
  };
  useEffect(() => {
    loadUsers();
  }, []);
我的回报是这样的

return (
    <div>
      {users.length > 0 ? (
        users.map((index, user) => {
          return (
            <div key="index">
              <label>Name : {user.name}</label>
              <label>Email : {user.email}</label>
              <label>NUmber : {user.number}</label>
            </div>
          );
        })
      ) : (
        <h1> No users found </h1>
      )}
      )
    </div>
  );
fetch仅拒绝已取消的请求或网络错误,否则返回已解决的承诺

当出现网络错误时,fetch承诺将以TypeError拒绝 在服务器端遇到或CORS配置错误,尽管 通常指许可问题或类似问题-404不构成 例如,网络错误。一次成功的检查 fetch将包括检查承诺是否已解决,然后 正在检查Response.ok属性的值是否为true

您应该检查response.ok以确保请求是否成功。您还可以删除catch块,因为消费组件代码中的任何catch块都将捕获它们

export const loadalluser = (users) => {
  return fetch(`${API}/loadalluser`, {
    method: "GET",
    body: JSON.stringify(users),
  })
    .then((response) => {
      if (!response.ok) {
        throw new Error('Network response was not ok');
      }
      return response.json();
    });
};
这一更改应该会有所帮助,因为它不会默默地接受失败的获取请求,并使用错误的值更新状态


另外,GET请求的主体是否需要将用户传递给loadalluser?

那么,数据包含什么?console.logdata。另外,请提供更多详细信息。是否确保没有错误?发生了什么?那么我的代码是否完美?您得到的错误是什么?@Vasanth我从数据库中获取所有用户,在控制台中,他们是用户的对象
export const loadalluser = (users) => {
  return fetch(`${API}/loadalluser`, {
    method: "GET",
    body: JSON.stringify(users),
  })
    .then((response) => {
      if (!response.ok) {
        throw new Error('Network response was not ok');
      }
      return response.json();
    });
};