如何将 prisma 与 use-client 声明一起使用?

How to use prisma with the use-client declaration?

提问人:Deviee 提问时间:11/13/2023 更新时间:11/13/2023 访问量:7

问:

所以我正在尝试从数据库中获取数据。但是,由于不可能在一个文件中使用 Prisma 和客户端渲染,因此我有一个文件,其中我使用 Prisma 获取数据,另一个文件将这些异步函数与 useState 和 useEffect 一起使用:

import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();

export async function main() {
  const data = await prisma.book.findFirst({
    where:{
      title:"TheLeanStartup"
    },
    select:{
      id:false,
      author:false,
      title:true,
      rating:false,
      image:false,
      tags:false
    }
  });
  return data;
}

export async function fetchBook(request) {
    try {
      return await request();
    } catch (error) {
      console.error(error.message);
    }
  }

在第二个文件中,我尝试使用状态和效果渲染这些数据:

'use client'
import {fetchBook, main} from '@components/Book-Subside/afuncs';
import { useEffect, useState } from 'react';

export default function Review() {
  const [book, setBook] = useState(null);

  useEffect(() => {
    let result = fetchBook(main);
    setBook(result);
  }, []);

  if (!book) {
    return <div>Loading...</div>;
  }

  return (
    <h1>{book.title}</h1>
  );
}

有人可以解释一下如何使这段代码工作,因为我得到的只是一堆错误。

异步 next.js 异步-等待 prisma

评论


答: 暂无答案