【问题标题】:Next.js getServerSideProps | Strange behavior for a functionNext.js getServerSideProps |函数的奇怪行为
【发布时间】:2021-11-10 00:41:34
【问题描述】:

函数的奇怪行为。 有时服务器请求的地址错误

console.log ({url: context.req.url})

并打印到控制台

{url: '/_next/data/development/en-gb/b.json?culture=en-gb'}

这会破坏与当前请求地址相关的所有逻辑。 为什么会发生这种情况以及如何解决它

我正在使用标准函数的函数包装器

export function getServerSidePropsWithPageInitData(options: PropsOptions = {}) {

  //redux-wrapper
  return wrapper.getServerSideProps((store) => {

    const { getState, dispatch } = store;

    return async function(context: GetServerSidePropsContext) {


      console.log({ url: context.req.url }) // {url: '/_next/data/development/en-gb/b.json?culture=en-gb'}
      
      return  await getPageInitialData(serverContext);

      // some logic and return object look like
      // { props: {key: value } }
      // or redirect
      // redirect: {
      //  permanent: false,
      //  destination: destination
      // }
    };
  })
}

【问题讨论】:

标签: reactjs next.js


【解决方案1】:

使用resolvedUrl属性:

resolvedUrl:请求 URL 的规范化版本,去除客户端转换的 _next/data 前缀并包含原始查询值。

更多:https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side-rendering

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2011-06-14
    • 2020-01-31
    • 2014-05-24
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多