NextJS -如何结合两个getServerSideProps包装?



我在我的nextjs客户端使用next-iron-sessionnext-redux-wrapper。它们都要求我用各自的函数包装getServerSideProps。有没有人知道,我怎样才能把包装纸锁起来?

next-iron-session(个人)

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: Cannot read property 'ttl' of undefined

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
},
),
)

我不知道为什么它突然工作。这是我的第一个解决方案,但它现在已经不起作用了。但对于较新的,请…

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,
},
),
)

最新更新