【问题标题】:NextJS - How to combine two getServerSideProps wrappers?NextJS - 如何组合两个 getServerSideProps 包装器?
【发布时间】:2021-10-19 04:32:25
【问题描述】:

我在 nextjs 客户端中使用 next-iron-sessionnext-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
        },
      ),
    )

【问题讨论】:

    标签: javascript reactjs next.js next-redux-wrapper


    【解决方案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,
        },
      ),
    )
    

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 2021-03-03
      • 2021-07-15
      • 2021-08-10
      • 2021-12-31
      • 2020-06-30
      • 2021-09-25
      • 2022-12-03
      • 2018-03-10
      相关资源
      最近更新 更多