我从我的Mongo数据库中获取了一些数据,它作为一个对象返回到我的useEffect钩子函数中,即我的代码中的response。然后,我声明一个状态myorders,并希望最终从API.And中设置它的值。我想将这些数据映射到UI中的不同行。
但问题是,当我试图通过传递setState()函数中的获取命令在组件中传递setState ()函数时,它返回一个空对象。Console.log(状态)显示一个空数组。
代码
import React, { useEffect, useState } from "react";
import { useRouter } from "next/router";
const Orders = () => {
const router = useRouter();
const [myorders, setMyorders] = useState();
useEffect(() => {
const fectOrders = async () => {
let a = await fetch(`${process.env.NEXT_PUBLIC_HOST}/api/myorders`, {
method: "POST", // or 'PUT'
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ token: localStorage.getItem("token") }),
});
let response = await a.json();
console.log("RES = ",response)
setMyorders(response.myorders)
console.log("MY = ",myorders)
}
if (!localStorage.getItem("token")) {
router.push("/");
} else {
fectOrders();
}
}, []);
return (
<div className="container mx-auto">
<h1 className="font-bold text-center text-2xl p-8">My Orders</h1>
<div className="flex flex-col">
<div className="overflow-x-auto sm:-mx-6 lg:-mx-8">
<div className="py-2 inline-block min-w-full sm:px-6 lg:px-8">
<div className="overflow-hidden">
<table className="min-w-full border-[1px]">
.
.
.
</table>
</div>
</div>
</div>
</div>
</div>
);
};
export default Orders;ANd我得到了这些值

如您所见,API正在返回值,但setState()不起作用。
该怎么办?
发布于 2022-04-30 12:56:10
我在useEffect中添加了useEffect作为依赖项来解决这个问题,
所以我的useEffect是这样的
useEffect(() => {
const fectOrders = async () => {
let a = await fetch(`${process.env.NEXT_PUBLIC_HOST}/api/myorders`, {
method: "POST", // or 'PUT'
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ token: localStorage.getItem("token") }),
});
let response = await a.json();
console.log("RES = ",response)
//setMyorders(response.myorders)
console.log("MY = ",myorders)
return response.myorders;
}
if (!localStorage.getItem("token")) {
router.push("/");
} else {
fectOrders().then((ord)=>setMyorders(ord)).catch((err)=>console.log(err));
}
}, [myorders]);https://stackoverflow.com/questions/72068602
复制相似问题