【发布时间】:2022-07-18 03:50:32
【问题描述】:
我正在尝试使用 Nextjs 实现“OnThisDay”维基百科样式功能,显示当天发生的事件。为此,我有一个如下所示的函数:
const list = [{"dateOfDeath": "2000-01-01", "name": "X"},{"dateOfDeath": "2000-01-02", "name": "Y"]
const dateObj = new Date();
const currentDay =
('0' + (dateObj.getMonth() + 1)).slice(-2) +
'-' +
('0' + dateObj.getDate()).slice(-2);
export default function GetToday() {
return list.filter(
(person) => person.dateOfDeath.slice(5) === currentDay
);
}
然后我通过 getStaticProps 得到这个:
export const getStaticProps: GetStaticProps = async () => {
const today = GetToday();
return {
props: {
today
},
revalidate: 10
};
};
这一切都很好,但是似乎 Date 对象是在构建时创建一次的,所以无论网站构建的日期如何,页面都会被卡住。
我故意将 revalidate 设置为 10s 试图解决这个问题,但没有奏效。我也尝试改用getServerSideProps,但这也没有改变任何东西。我正在使用 Docker 部署站点,几乎使用 Nextjs 存储库的 Docker 模板。
有人知道在运行时创建一个新的 Date 对象的方法吗?
【问题讨论】:
-
尝试在
GetToday函数中调用new Date()和currentDay逻辑。
标签: javascript node.js reactjs typescript next.js