Далее. js - Как передать идентификатор из запроса в функцию getInitialProps - PullRequest
0 голосов
/ 14 марта 2020

Я хочу создать простой сайт со статьями из БД. Моя проблема в том, что мне нужно, чтобы эти статьи отображались на сервере, и я могу сделать это с помощью функции 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);

1 Ответ

1 голос
/ 14 марта 2020

getInitialProps получить в качестве аргумента context объект, на котором есть query.

Вы должны получить там свое значение.

...