Next.js - 如何将 id 从查询传递到 getInitialProps 函数
Next.js - How to pass id from query to getInitialProps function
我想用来自 db 的文章建立一个简单的网站。我的问题是我需要用服务器呈现这些文章,我可以使用 Next.js 文档中的 getInitialProps
函数来完成:https://nextjs.org/docs/api-reference/data-fetching/getInitialProps#getinitialprops-for-older-versions-of-nextjs
现在它工作正常,但我想通过它的 ID 实现获取文章,我的 link 应该是这样的:
http://localhost:3000/articles/<some_id>
我已经这样做了,但现在我想读取该 ID 并将其传递给 getInitialProps 函数以仅针对一篇特定文章调用我的 API。我的问题是我不知道如何传递 router
道具以从查询中获取该 ID 并调用 API.
import { withRouter } from "next/router";
import fetch from "isomorphic-unfetch";
const Article = ({ router }) => {
console.log(router);
return (
<div>
<h1>Hello World</h1>
</div>
);
};
Article.getInitialProps = async props => {
console.log(props);
const res = await fetch(
`https://admin.jozefrzadkosz-portfolio.pl/articles/${router.query.id}`
);
const articles = await res.json();
return { articles };
};
export default withRouter(Article);
getInitialProps
作为参数获取 context
对象,其中包含 query
。
你应该在那里得到你的价值。
我想用来自 db 的文章建立一个简单的网站。我的问题是我需要用服务器呈现这些文章,我可以使用 Next.js 文档中的 getInitialProps
函数来完成:https://nextjs.org/docs/api-reference/data-fetching/getInitialProps#getinitialprops-for-older-versions-of-nextjs
现在它工作正常,但我想通过它的 ID 实现获取文章,我的 link 应该是这样的:
http://localhost:3000/articles/<some_id>
我已经这样做了,但现在我想读取该 ID 并将其传递给 getInitialProps 函数以仅针对一篇特定文章调用我的 API。我的问题是我不知道如何传递 router
道具以从查询中获取该 ID 并调用 API.
import { withRouter } from "next/router";
import fetch from "isomorphic-unfetch";
const Article = ({ router }) => {
console.log(router);
return (
<div>
<h1>Hello World</h1>
</div>
);
};
Article.getInitialProps = async props => {
console.log(props);
const res = await fetch(
`https://admin.jozefrzadkosz-portfolio.pl/articles/${router.query.id}`
);
const articles = await res.json();
return { articles };
};
export default withRouter(Article);
getInitialProps
作为参数获取 context
对象,其中包含 query
。
你应该在那里得到你的价值。