Nextjs вызывает жесткое обновление, когда я нажимаю на ссылку - PullRequest
1 голос
/ 12 ноября 2019

У меня есть приложение, реагирующее с использованием CRA, и я пытаюсь превратить его в приложение SSR, используя следующее. Итак, поскольку мало что изменилось, я изменил только:

  • getInitialProps вместо useEffect и useState
  • Ссылка из "next / link" вместо использования реагирующего маршрутизатора dom

Но когда я нажимаю на ссылку, я получаю жесткое обновление. Вот что генерирует ссылку:

<Link href={post.meta.slug}>
    <a>{post.title}</a>
</Link>;

Я также пытался с href={post.meta.slug} as={post.meta.slug}.

В моем каталоге страниц у меня есть:

  • index.jsx
  • [slug] .jsx

И вот как я получаю сообщение в [slug].jsx:

const PostPage = ({ post }) => {
    return <Base>{post ? <Post post={post} /> : null}</Base>;
};

PostPage.propTypes = {
    post: PropTypes.object,
};

PostPage.getInitialProps = async ({ query }) => {
    const post = await getPostBySlug(query.slug);
    return { post };
};

И до сих пор я не мог определитьошибка.

Вот полный код: https://gitlab.com/flakesrc/blog-webstation-next

Если вы хотите клонировать:

git clone https://gitlab.com/flakesrc/blog-webstation-next.git
cd blog-webstation-next
npm install
npm run dev

1 Ответ

3 голосов
/ 12 ноября 2019

Вы пробовали этот формат для Link?

<Link href='/[slug]' as={`/${post.meta.slug}`}>
  <a>{post.title}</a>
</Link>

Вот хороший пример этого типа маршрутизации для динамических страниц, а также для раздела в документах , что также немного говорит об этом.

...