Далее. js пользовательское приложение getInitialProps TypeError - PullRequest
0 голосов
/ 06 января 2020

У меня довольно простое приложение со стартовым комплектом Next JS, и я пытаюсь заставить его работать с пользовательским приложением, как указано в документах здесь :

class MyApp extends App {
  static async getInitialProps({ Component, router, ctx }) {
    let pageProps = {};
    const isAuthenticated = await (process.browser
      ? Auth0Client.clientAuth()
      : Auth0Client.serverAuth(ctx.req));

    console.log("isAuthenticated: ", isAuthenticated);

    if (Component.getInitialProps) pageProps = await App.getInitialProps(ctx);

    const auth = { isAuthenticated };
    return { pageProps, auth };
  }

  render() {
    const { Component } = this.props;
    return <Component auth={this.props.auth} />;
  }
}

It находится внутри _app. js папки страниц.

Дело в том, что моя индексная страница также имеет stati c

static async getInitialProps

и по какой-то причине вызывает следующую ошибку:

TypeError: Невозможно прочитать свойство 'prototype' с неопределенным

Вы можете увидеть мой файл _app. js здесь по этому URL: https://github.com/bodrovphone/next-app/blob/breakingPoint/pages/_app.js

И индекс. js URL файла здесь: https://github.com/bodrovphone/next-app/blob/breakingPoint/pages/index.js

Шаги для воспроизведения:

  1. клонировать проект в этой ветке
  2. npm установить
  3. npm запустить dev
  4. перейти к localhost: 3000

I Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 06 января 2020

Вы должны запускать соответствующие Component getInitialProps каждый раз, а не App.

Измените _app. js в следующей строке :

if (Component.getInitialProps) pageProps = await App.getInitialProps(ctx);

до

if (Component.getInitialProps) pageProps = await Component.getInitialProps(ctx);

Надеюсь, это решит вашу проблему.

...