👋
我用primsic和nextjs构建了我的应用程序。
在着陆页上,我想只显示我的网页3 aritcles,然后如果用户单击下一页按钮,我想显示下一个3 aritcles页面
我有index
页面,其中包括以下 prop 。我如何使用以下响应数据为我的下3个aritcles获取数据。next_page
是下一个aritcles的API URL。
有没有办法使用prismic API或nextjs api来获取数据?
articles:
{
"page": 1,
"results_per_page": 3,
"results_size": 3,
"total_results_size": 14,
"total_pages": 5,
"next_page": "https://myapp.cdn.prismic.io/api/v2/documents/search?ref=Y-N6RxAAACEAh2Gz&q=%5B%5Bat%28document.type%2C+%22article%22%29%5D%5D&orderings=%5Bmy.article.publishDate+desc%2Cdocument.first_publication_date+desc%5D&page=2&pageSize=3",
"prev_page": null,
"results": [
{title: "result 1"},
{title: "result 2"},
{title: "result 3"},
],
"license": "All Rights Reserved"
}
const Index = ({ articles, navigation, settings, pathname }) => {
return (
<Layout>
<Bounded size="widest">
<ul className="grid grid-cols-1 gap-16">
{articles?.results.map((article) => (
<Article key={article.id} article={article} />
))}
</ul>
<NextLink href={articles.next_page}>test</NextLink>
</Bounded>
</Layout>
);
};
export default Index;
export async function getStaticProps({ previewData }) {
const client = createClient({ previewData });
const articles = await client.getByType("article", {
orderings: [
{ field: "my.article.publishDate", direction: "desc" },
{ field: "document.first_publication_date", direction: "desc" },
],
pageSize: 3,
});
const navigation = await client.getSingle("navigation");
const settings = await client.getSingle("settings");
console.log(articles);
return {
props: {
articles,
navigation,
settings,
},
};
}
1条答案
按热度按时间gtlvzcf81#
Prismic
page
Rest API查询参数允许您指定结果的偏移量。使用Next.js实现这一点的最直接方法是在URL中包含
page
参数。这可以使用动态路由(例如https://example.com/blog/page-2
通过pages/blog/[page].js
)或URL参数(例如https://example.com/blog?page=2
)来完成。您可以像这样将
page
参数传递给查询(注意params.page
的使用):响应的
next_page
和prev_page
值可用于确定下一页或上一页是否可用。如果它具有值(URL),则可以安全地链接到下一页/上一页。如果值为null
,则不应链接到下一页/上一页。请注意,您不会在API响应中使用
next_page
/prev_page
URL作为链接;这是一个到Rest API的链接。