我看到过一些类似错误的帖子,但是我在这里遇到了困难,因为我对泛型类型不是很熟悉,尽管我可能会尝试,但我还是不能完全弄清楚异步和承诺。无论如何,这个Typescript代码不能为article找到一个初始值。我真的不想要一个默认值,但我已经尝试过null,我已经尝试过在一个数组中放入一个单独的伪对象,和我能想到的每一种组合。有人能帮我从数据库中得到一个文章列表,然后将它们Map为列表项吗?
这是类型。
export type article = {
article_id: number
organization_id: number
title: string
subtitle: string
article_text: string
publish_date: Date | null
end_date: Date | null
created_date: Date
modified_date: Date
created_by: string
modified_by: string
}
而代码
import { useEffect, useState } from "react";
import React from "react";
export default async function TestCrap() {
const [articles, setArticles] =
useState<article[]>([
{
article_id: 1,
organization_id: 1,
title: "string",
subtitle: "string",
article_text: "string",
publish_date: null,
end_date: null,
created_date: new Date("2022-01-01"),
modified_date: new Date("2022-01-01"),
created_by: "string",
modified_by: "string",
},
]);
const prisma = new PrismaClient();
useEffect(() => {
prisma.article.findMany().then((a) => setArticles(a));
}, []);
// const count: number = await prisma.person.count();
// const count: number = 999;
return (
<div>
<h1>TEST CRAP</h1>
{/* <h3>Count: {count.toString()}</h3> */}
<ul>
{articles.length > 0 &&
articles.map((value, index) => {
return (
<>
<li key={index}>Title: {value.title}</li>
</>
);
})}
</ul>
</div>
);
}```
1条答案
按热度按时间xytpbqjk1#
应使用
null
作为默认值:这样,就不需要一个哑数组作为初始值。
此外,从函数定义中删除关键字
async
。