Javascript 无法在useState挂钩中设置数组
这是我的代码,我正在尝试在setUsers中设置数组。数据正确地来自后端,但它没有在hook中设置。请帮助我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
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();
});
};