javascript 如何修复对象作为React子对象无效,在Nextjs13中

mspsb9vt  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(103)

如何在Nextjs13中修复此错误,* 对象作为React子对象无效(找到:[object Promise])。如果你想呈现一个子元素的集合,请使用数组 *
我通过Prisma从Supabase获取数据,我在终端中获取数据,但在下一个应用程序中也会出现错误。
pages/index.tsx

import Header from "@/components/Header";
import Navbar from "@/components/Navbar";
import RestaurantCard from "@/components/Restaurantcard";
import { PrismaClient } from "@prisma/client";
const prisma =new PrismaClient()

const fetchRestaurant = async () => {
  const restaurants = await prisma.restaurant.findMany();
  return restaurants;
};

export default async function Home() {
  const restaurants = await fetchRestaurant();
  console.log({restaurants})
  return (
    <main className="bg-gray-100 min-h-screen">
      <main className="max-w-screen-2xl m-auto bg-white">
        <Navbar />
        <main>
          <Header />
          <div className="py-3 px-36 mt-10 flex flex-wrap justify-center">
            {restaurants.map((res) => (
              <RestaurantCard />
            ))}
          </div>
        </main>
      </main>
    </main>
  );
}

Data which I'm getting in the terminal

{
  restaurants: [
    {
      id: 25,
      name: 'Vivaan - fine Indian',      
    },
    {
      id: 26,
      name: 'RamaKrishna Indian',
    }
  ]
}
zvms9eto

zvms9eto1#

我可以看到您希望遍历从API接收的餐厅并使用它们呈现一个组件。
这里的问题是,您试图Map出对象,而不是其中的实际数组。接收到的数据是一个对象。我已经添加了2张图片显示你是如何做到这一点与它应该如何做,让事情的工作。
Mapping array from the object

restaurants.restaurants.map((res) => {
    console.log(res);
})

Mapping the object instan

restaurants.map((res) => {
    console.log(res);
})

谢谢你,如果有帮助,请标记正确的答案:)

相关问题