首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NextJS getServerSideProps分页

NextJS getServerSideProps分页
EN

Stack Overflow用户
提问于 2021-04-21 17:46:11
回答 1查看 976关注 0票数 1

我使用的数据库是NextJS和Supabase。我不确定如何在这里使用分页。因为我正在寻找的解决方案是将查询传递给API。我不能这样做,因为我是直接从数据库中获取它。我在这里的解决方案是什么?

代码语言:javascript
复制
import { supabase } from "../lib/supabase";
import { useRouter } from "next/router";

function Cars({ data, count, page }) {
  const router = useRouter();
  return (
    <div>
      {data.map((carsdata) => (
        <ul key={carsdata.id}>
          <li>{carsdata.name}</li>
        </ul>
      ))}

      <button onClick={() => router.push(`/Cars?page=${page - 1}`)}>
        Prev
      </button>
      <button onClick={() => router.push(`/Cars?page=${page + 1}`)}>
        Next
      </button>
    </div>
  );
}

export async function getServerSideProps({ query: { page = 1 } }) {
  const { data, count } = await supabase
    .from("cars")
    .select("*", { count: "exact" })
    .order("id", { ascending: true })
    .range(0, 9)
  return {
    props: {
      data: data,
      count: count,
      page: parseInt(page),
    },
  };
}

解决方案是将查询传递给getServerSideProps中的API,如下所示

代码语言:javascript
复制
const res = await fetch(`${API}/start=${start}`);
const data = await res.json()
EN

回答 1

Stack Overflow用户

发布于 2021-04-21 17:50:07

您应该从客户端进行分页,因为getServerSideProps会在您刷新页面时执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67193282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档