Отправить параметр для получения в getInitialProps реагировать и nextjs - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь отправить параметр в функцию getInitialProp, чтобы сделать правильный результат json.

вот мой код: hepler. js -> здесь я сделал выборку в соответствии с se.

export async function getEvents() {
  const res = await fetch("https://url/eventos.json");
  let new_data = await res.json();

  return { events: new_data.data };
}

export async function getDetails(slug) {
  const res = await fetch(`https://myurl/${slug}.json`);
  let data_detail_event = await res.json();
  return { data_detail_event };
}

_app. js // здесь у меня есть getInitialProps и прекрасно работает

import App from "next/app";
import ContextProvider from "../provider/ContextProvider";
import fetch from "isomorphic-unfetch";
import {getEvents, getDetails} from '../helper/index'

export default class MyApp extends App {
  static async getInitialProps() {

    const events = await getEvents();
    return {
      events : events.events
    };
  }

  render() {
    const { Component, pageProps } = this.props;
    return (
      <div>
        <ContextProvider events={this.props.events} >
          <Component {...pageProps} />
        </ContextProvider>
      </div>
    );
  }
}

страниц / [id]. js

import { useRouter } from "next/router";
import Context from "../../config/Context";
/* Components */
import WordCounter from "../../components/word-counter/WordCounter";

function Post(props) {
  const router = useRouter();
  const context = React.useContext(Context);
  return (
    <React.Fragment>
     <WordCounter />
    </React.Fragment>
  );
}
Post.getInitialProps = async ({ query}) => {
  const detail = await getDetail(query.id) --> here I send the param and it seems never arrive to helper.js, why?
  return {detail}
}
export default  Post

Где проблема? ПОМОГИТЕ! THAANKS!

1 Ответ

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

Я думаю, что getInitialProps запускается на сервере, а ваша вспомогательная функция там не загружается.

используйте fetch внутри getInitialProps.

...