Next.js getServerSideProps |函数的奇怪行为
Posted
技术标签:
【中文标题】Next.js getServerSideProps |函数的奇怪行为【英文标题】:Next.js getServerSideProps | Strange behavior for a function 【发布时间】: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
//
;
)
【问题讨论】:
这能回答你的问题吗? getServerSideProps access current browser url 【参考方案1】:使用resolvedUrl
属性:
resolvedUrl
:请求 URL 的规范化版本,去除客户端转换的 _next/data 前缀并包含原始查询值。
更多:https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side-rendering
【讨论】:
以上是关于Next.js getServerSideProps |函数的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章
Next.js 只运行一次 getServerSideProps,next/router 访问时不获取新数据
Next.js 中为啥没有通过 getServerSideProps 将 cookie 发送到服务器?
Next.js:在 getServerSideProps 中使用带有 TypeScript 的 next-redux-wrapper 调用 Thunks?
在 getServerSideProps() 中直接导入 next.js API 端点