0

市民権 ID 番号に基づいて割引を受けることができるページにユーザーを誘導したいと考えています。ID 番号を使用して、割引額を決定します。ID を使用して、場所、年齢、性別などを特定できます。

mywebsite.com/megadiscountにアクセスし、ID 番号をボックスに入力して、割引額を確認できます。しかし今の問題は、mywebsite.com/megadiscount/[id number]へのリンクを取得して、どれだけの割引が得られるかを確認できるようにしたいということです。

したがって、NextJS を使用すると、URL から ID を作成megadiscount/index.jsして取得できることがわかります。megadiscount/[id].js

問題は、生成する ID ページmegadiscount/[id].jsを指定する必要getStaticPathsがあることですが、問題は、これらの ID がどうなるかわからないことです。

私のmegadiscount/[id].jsファイルは次のようになります

const Page = ({discount}) => {
  return (
    <>
      <h1>You get a discount of : {discount}%</h1>
    </>
  )
}


export async function getStaticPaths() {

  return {
    paths: [], // I don't know what these will be
    fallback: false,
  };
}

export async function getStaticProps(context) {
  const { slug = "" } = context.params;
  const discount = fetchDiscountFromServer(slug)
  return {
    props: {
      discount
    },
  };
}

export default Page;
4

1 に答える 1

1
export default function Page({ discount }) {
  return (
    <>
      <h1>You get a discount of : {discount}%</h1>
    </>
  );
}

export async function getStaticProps({ params: { id } }) {
  //Featch your discount based on id
  const discount = await fetchDiscountFromServer(id);
  return {
    props: { discount },
  };
}
export async function getStaticPaths() {
  return {
    paths: [],
    fallback: "blocking",
  };
}

NextJS は、このような場合にフォールバック:「ブロッキング」を提供します。ドキュメントをチェックする

しかし、あなたはこの場合について考えるべきですSSR, 私の意見では. これにより、すべてのユーザーに対して静的ページが生成されますが、割引を頻繁に変更する場合は、低いrevalidate:1 値を設定する必要がありますが、それでもリアルタイムではありません.

于 2021-06-02T11:16:19.930 に答える