【发布时间】:2021-04-27 18:33:49
【问题描述】:
我正在尝试使动态路由正常工作,以便使用 url 中的 id 显示和检索正确的信息。这在我访问页面时有效,但是当我重新加载页面时,id 为空白。这是可以修复的吗?我在互联网上找不到答案。
任何帮助将不胜感激。
参考代码
//Initializing router
const router = useRouter();
//Getting id from url
const { id } = router.query;
//Fetching postdata
const getPostData = async () => {
setLoading(true);
await db
.collection("Posts")
.doc(id)
.get()
.then(function (doc) {
if (doc.exists) {
setPostData(doc.data());
setLoading(false);
} else {
//router.push("/404");
}
})
.catch(function (error) {
//router.push("/404");
});
};
【问题讨论】:
-
你能分享一下代码,看看有什么问题吗?
-
@MihaiMoraru,是的,对不起。我编辑了帖子。
-
强烈建议使用
getServerSideProps并在定义组件的文件中导出。