getStaticProps Не возвращает никаких данных на страницы Next.JS

#javascript #reactjs #api #next.js #getstaticprops

Вопрос:

Я пытаюсь извлечь данные из моей размещенной базы данных. Сама база данных работает (я проверил ее в приложении swagger), но при вызове из формы API данные не отображаются.

 import React from 'react';

export const getStaticPaths = async () => {
    const res = await fetch('https://[server]/course');
    const data = await res.json();

    const paths = data.result.map(course => {
        return {
            params: { id: course._id.toString() }
        }
    })

    return {
        paths,
        fallback: false
    }
}

export const getStaticProps = async (context) => {
    const id = context.params.id;
    const res = await fetch('https://[server]/course/'   id);
    const data = await res.json();

    return {
        props: { course: data }
    }
}

const Details = ({ course }) => {
    return (
        <div>
            <h1> { course.course_name } </h1>
            <h1>a</h1>

        </div>
    );
}
 
export default Details;
 

Код находится в папке «Страницы». Я следил за учебником на YouTube от «netninja», и когда я попробовал его на его коде, он работает. Я где-то читал, что он не будет работать с компонентами, но я уже разместил его на страницах, но он все равно ничего не возвращает.

Могу ли я что-нибудь сделать ?

Комментарии:

1. fetch getStaticProps Возвращает ли внутренняя часть ожидаемый ответ/данные?

2. Так и должно быть. Я не могу проверить, так это или нет, потому что я не могу вызвать данные. Но это ссылка API, и когда ссылка API запускается, она возвращает определенные данные

3. Вы можете проверить, что перенастроено в ответе, если войдете data в консоль и проверите вывод в терминале, где вы запустили сервер разработки. Возможно, вы захотите сделать то же самое и с запросом внутри getStaticPaths .

4. Здравствуйте, я протестировал его, и по какой-то причине он не распознает массив как базу данных (если это имеет какой-либо смысл). Поэтому мое лучшее объяснение заключается в том, что я попытался войти в консоль на другой странице, где на самом деле работает API, и на полученных данных был цвет, указывающий тип данных, но на текущей странице он только черно-белый (что, как я полагаю, означает, что код не распознает его как базу данных). Могу ли я что-нибудь сделать?

5. Здравствуйте, я только что понял проблему. Данные находятся в «course.result.course_name» после того, как я проверил их в журнале консоли. Большое вам спасибо за вашу помощь, и я обязательно воспользуюсь консолью. с этого момента регистрируйте больше. ЕЩЕ РАЗ СПАСИБО!!!

Ответ №1:

Я получил ответ. После проверки консоли.войдите в систему с данными. Похоже, что данные находятся в другом массиве, который называется результатом. поэтому мне нужно было вызвать данные из course.result.course_name. Так что ответ заключается в том, чтобы просто проверить консоль.регистрируйтесь время от времени. Крикните Джулиомальвесу за то, что он указал на это