【发布时间】:2021-11-12 04:13:06
【问题描述】:
我想要做的是遍历当前的 posttype 和“产品”,但我正在努力处理这些类型。所以我得到了以下错误:
'Record
[]' 类型的参数不能分配给'never' 类型的参数。
关于这部分:
...pages.map((page) => ({
我的代码:
const pages = useSelect((select) => {
const editor = select("core/editor");
const currentPostType: string = editor.getCurrentPostType();
const selectablePostTypes = [currentPostType, "products"];
const postList = [];
selectablePostTypes.forEach((singlePostType) => {
const records: Record<string, any>[] = select("core").getEntityRecords(
"postType",
singlePostType
);
postList.push(records);
});
});
// Make dropdown of pagesOptions
const pagesOptions = [
...[
{
value: "0",
label: __("No page selected", "demosite"),
},
],
...pages.map((page) => ({
value: page.id,
label: page.title,
})),
];
添加有效的代码:
const pages = useSelect((select) => {
const editor = select("core/editor");
const postType: string = editor.getCurrentPostType();
const records: Record<string, any>[] = select("core").getEntityRecords(
"postType",
postType
);
return records
? records.map((record) => ({
description: record.description,
id: record.id,
featuredMedia: record.featuredMedia,
link: record.link,
subtitle: record.subtitle,
title: record.title.rendered,
}))
: [];
});
这里它针对一种帖子类型,即您当前正在编辑的帖子类型,但我想在一些帖子类型上循环。
例子:
const selectablePostTypes = ['page', 'post', 'product'];
【问题讨论】:
-
旁注:在那里你实际上有这个代码:
const pagesOptions = [...[somevalue]],可以写成const pagesOptions = [somevalue] -
假设
useSelect是一种效果,const pages = useSelect看起来不正确。更重要的是,您传递给useSelect的函数不会返回任何内容。 -
能否请您提供 TS 操场上的最小可重现示例?
标签: javascript reactjs typescript