Я хочу создать простой сайт со статьями из БД. Моя проблема в том, что мне нужно, чтобы эти статьи отображались на сервере, и я могу сделать это с помощью функции getInitialProps
из Next. js документация: https://nextjs.org/docs/api-reference/data-fetching/getInitialProps#getinitialprops -for-old-version-of-next js
Пока это работает правильно, но я хочу реализовать получение статьи по ее идентификатору, и моя ссылка должна быть такой:
http://localhost:3000/articles/<some_id>
Я сделал это, но теперь я хочу прочитайте этот идентификатор и передайте его функции getInitialProps, чтобы вызвать мой API только для одной указанной c статьи. Моя проблема в том, что я не знаю, как передать router
реквизиты для получения этого идентификатора из 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);