类型 'string | Date' 不可分配给类型 'ReactNode'.. 打字稿
Type 'string | Date' is not assignable to type 'ReactNode'.. Typescript
从 API 中获取新闻标题并每页显示 10 条新闻及其 ID。这也会在 10 秒内刷新,并且出现新的头条新闻。 TableHead mapping contents seems fine but tableBody providing this error:
类型 'string | Date' 不可分配给类型 'ReactNode
//Init post
export interface InitPost {
title: string;
url: string;
created_at: Date;
author: string;
}
//state of post
const [posts, setPosts] = useState<InitPost[]>([]);
//colums
const columns: readonly Column[] = [
{ id: "title", label: "Title", minWidth: 170 },
{ id: "url", label: "URL", minWidth: 150 },
{ id: "created_at", label: "Created At", minWidth: 100 },
{ id: "author", label: "Author", minWidth: 100 },
];
Table头部:很好
<TableHead>
<TableRow>
{columns.map((column) => (
<TableCell
key={column.id}
align={column.align}
style={{ minWidth: column.minWidth }}
>
{column.label}
</TableCell>
))}
<TableCell />
</TableRow>
</TableHead>
错误部分
<TableBody>
{posts.map((row, index) => {
return (
<TableRow key={index}>
{columns.map((column) => {
const value = row[column.id];
****next line showing Error in "{value}"****
return <TableCell key={column.id}>{value}</TableCell>;
})}
<TableCell>
<Button
size="small"
variant="contained"
onClick={() => getDetails(row)}
>
Details
</Button>
</TableCell>
</TableRow>
);
})}
</TableBody>
主要问题是 Date
类型和 string
类型不兼容。
对象,当然 React Elements 除外,无效 children
。
您正在呈现的其中一列 (created_at
) 属于 Date
类型,不能直接用作 React Child。
您需要以某种方式格式化日期或在大括号之间调用 .toString()
方法以确保您的 children
不是对象。
{
columns.map((column) => {
const value = row[column.id];
return <TableCell key={column.id}>{value.toString()}</TableCell>;
});
}
从 API 中获取新闻标题并每页显示 10 条新闻及其 ID。这也会在 10 秒内刷新,并且出现新的头条新闻。 TableHead mapping contents seems fine but tableBody providing this error:
类型 'string | Date' 不可分配给类型 'ReactNode
//Init post
export interface InitPost {
title: string;
url: string;
created_at: Date;
author: string;
}
//state of post
const [posts, setPosts] = useState<InitPost[]>([]);
//colums
const columns: readonly Column[] = [
{ id: "title", label: "Title", minWidth: 170 },
{ id: "url", label: "URL", minWidth: 150 },
{ id: "created_at", label: "Created At", minWidth: 100 },
{ id: "author", label: "Author", minWidth: 100 },
];
Table头部:很好
<TableHead>
<TableRow>
{columns.map((column) => (
<TableCell
key={column.id}
align={column.align}
style={{ minWidth: column.minWidth }}
>
{column.label}
</TableCell>
))}
<TableCell />
</TableRow>
</TableHead>
错误部分
<TableBody>
{posts.map((row, index) => {
return (
<TableRow key={index}>
{columns.map((column) => {
const value = row[column.id];
****next line showing Error in "{value}"****
return <TableCell key={column.id}>{value}</TableCell>;
})}
<TableCell>
<Button
size="small"
variant="contained"
onClick={() => getDetails(row)}
>
Details
</Button>
</TableCell>
</TableRow>
);
})}
</TableBody>
主要问题是 Date
类型和 string
类型不兼容。
对象,当然 React Elements 除外,无效 children
。
您正在呈现的其中一列 (created_at
) 属于 Date
类型,不能直接用作 React Child。
您需要以某种方式格式化日期或在大括号之间调用 .toString()
方法以确保您的 children
不是对象。
{
columns.map((column) => {
const value = row[column.id];
return <TableCell key={column.id}>{value.toString()}</TableCell>;
});
}