【发布时间】:2022-01-25 18:41:58
【问题描述】:
我正在使用 Next.js。
您能否告诉我是否有一种方法可以在所有页面上使用的组件(页眉和页脚)中静态生成和显示从数据库中检索到的值?
getStaticProps可以静态生成页面,但是组件好像不行。
我尝试在所有页面使用的标题组件中使用getStaticProps,但出现以下错误。
Module not found: Can't resolve 'fs'
header.tsx
export const getStaticProps = async () => {
const articleTags = await getArticleTags();
return { props: { articleTags }, revalidate: 3600 };
};
type HeaderProps = InferGetStaticPropsType<typeof getStaticProps>;
const Header: VFC<HeaderProps> = ({ articleTags }) => {
const tagList = articleTags.map(tag => {
return (
<li key={tag.id}>
<Link href={`/tags/${tag.name}`}><a>{tag.name}</a></Link>
</li>
)
});
return (
<header>
<ul>{tagList}</ul>
</header>
)
};
我尝试使用useEffect在客户端获取并显示上面的标签列表,但是由于每次移动页面时都没有显示任何内容而导致屏幕闪烁而困扰我。
我们还认为每次浏览页面时都获取变化不大的数据是一种浪费。
【问题讨论】:
标签: typescript next.js