#javascript #api #next.js
Вопрос:
поэтому я последовал учебнику, который был довольно простым и просто показывал, как запрашивать данные из API и отображать их. Но когда я перешел к просмотру страницы в моем проекте, NextJS возвращает и выдает ошибку «баннер.карта не является функцией», я поместил свой код ниже, любая помощь будет очень признательна. Вызов API-это «https://fortnite-api.com/v1/banners» который возвращает массив объектов.
export const getStaticProps = async () => {
const res = await fetch('https://fortnite-api.com/v1/banners');
const data = await res.json();
return {
props: { banners: data}
}
}
const FortniteApi = ({ banners }) => {
return (
<div>
<h1>Fortnite Api</h1>
{banners.map(banner => (
<div key={banner.id}>
<a>
<h3>{banner.name}</h3>
</a>
</div>
))}
</div>
)
}
export default FortniteApi
Ответ №1:
Вам нужно будет получить доступ к другому объекту data
внутри:
return {
props: { banners: data },
};
Для
return {
props: { banners: data.data },
};
Комментарии:
1. Ты бы поверил, что я думал об этом, лол. Большое спасибо, ценю это!
2. Ха-ха, не лишним будет сначала проверить ответ.
3. Вы также можете использовать другой синтаксис, подобный этому, для доступа к вложенному объекту данных. реквизит: { баннеры: {данные} }
4. Это может потребовать многого, но есть ли способ ограничить объем этих данных, которые я могу запросить? Допустим, я запрашиваю только от 0 до 20 из массива.
5. Это зависит от конечной точки, поддерживают ли они этот запрос или нет. В вашем случае все не так, как я проверил здесь: dash.fortnite-api.com