NextJS - 如何组合两个 getServerSideProps 包装器?
Posted
技术标签:
【中文标题】NextJS - 如何组合两个 getServerSideProps 包装器?【英文标题】:NextJS - How to combine two getServerSideProps wrappers? 【发布时间】:2021-10-19 04:32:25 【问题描述】:我在 nextjs 客户端中使用 next-iron-session
和 next-redux-wrapper
。
它们都要求我用它们各自的函数包装 getServerSideProps。
有人知道,我如何链接包装器?
下一次熨斗(个人)
export const getServerSideProps =
withIronSession(
async ( req, res ) =>
const user = req.session.get("user");
if (!user)
res.statusCode = 404;
res.end();
return props: ;
return
props: user
;
,
cookieName: "MYSITECOOKIE",
cookieOptions:
secure: process.env.NODE_ENV === "production" ? true : false
,
password: process.env.APPLICATION_SECRET
);
next-redux-wrapper(个人)
export const getServerSideProps = wrapper.getServerSideProps((store) => async () =>
const user = store.getState().user
console.log('user', user)
)
组合(不工作)
TypeError:无法读取未定义的属性“ttl”
export const getServerSideProps = withIronSession(
wrapper.getServerSideProps(
(store) =>
async ( req, res ) =>
const user = req.session.get('user')
console.log(user)
return
props: user: 'hi' ,
,
cookieName: 'MYSITECOOKIE',
cookieOptions:
secure: process.env.NODE_ENV === 'production' ? true : false,
,
password: process.env.APPLICATION_SECRET
,
),
)
【问题讨论】:
【参考方案1】:我不知道为什么它突然起作用了。那是我的第一个解决方案,现在已经不起作用了。但是对于较新的,请...
export const getServerSideProps = wrapper.getServerSideProps((store) =>
withIronSession(
async ( req, res ) =>
const user = await req.session.get('user')
console.log('uer', user)
return
props: user: 'hi' ,
,
cookieName: 'MYSITECOOKIE',
cookieOptions:
secure: process.env.NODE_ENV === 'production' ? true : false,
,
password: process.env.APPLICATION_SECRET,
,
),
)
【讨论】:
以上是关于NextJS - 如何组合两个 getServerSideProps 包装器?的主要内容,如果未能解决你的问题,请参考以下文章
NextJS、Apollo、WPGraphQL & 组合或检索超过 100 条记录
使用 recompose setStatic 并将其连接到 redux (nextjs)
如何在 react 和 next js 中使用 Styled 组件创建全局样式,使用 css 文件和 styled 组件的组合是不是更好?