我正在尝试为我的网站做动态网站Map,这里是我的代码:
import { GetServerSideProps } from 'next';
import { getServerSideSitemap, ISitemapField } from 'next-sitemap';
import { makeSlugFromString } from '../../lib/helpers';
import { BaseNCategories } from '../../lib/generalConstants';
export const getServerSideProps = async (ctx: any) => {
const response = await fetch('http://baseapi/v3/category-list');
const categoriesData = await response.json();
const categories: any[] = categoriesData.cat;
const categoryBn = BaseNCategories.filter((baseCategory) => {
return categories.some((category) => category.CategoryID === baseCategory.CategoryID);
});
const fields: ISitemapField[] = categoryBn.map((category) => ({
loc: `baseApi/${makeSlugFromString(category.Slag)}`,
lastmod: new Date().toISOString(),
// priority: 0.7,
// changefreq: 'daily',
}));
console.log({ fields });
return getServerSideSitemap(ctx, fields);
};
export default function Site() {}
字符串
我得到的错误是“field.map不是一个函数”我不知道为什么会这样。谁能帮我修好这个?
1条答案
按热度按时间5w9g7ksd1#
categoryBn不是一个数组因为categoryBn是使用filter函数从BaseNCategories派生的,所以它应该总是一个数组。但是,为了确保这一点,您可以在创建fields数组之前添加一个检查,以确保categoryBn确实是一个数组。
替换如下:
字符串
用这个:
型