3

我在 NextJs 应用程序中使用了两个库:next-firebase-authnext-redux-wrapper. getServerSideProps它们都要求我用它们各自的功能进行包装。

为了next-firebase-auth

export const getServerSideProps = withAuthUserSSR()(async ({ AuthUser }) => {
    // Some code
})

为了next-redux-wrapper

export const getServerSideProps = wrapper.getServerSideProps(
    ({store}) => {
        // Some code
    }
);

两者都单独工作,但我无法让两者同时工作。NextJs 只允许getServerSideProps声明一次。是否有可能以某种方式组合多个包装器?

4

1 回答 1

0

您可以一个接一个地链接包装器。内部函数将包含它们两个传递的附加道具。

export const getServerSideProps = withAuthUserSSR()(wrapper.getServerSideProps(
    ({ AuthUser, store, res, req }) => {
        // `getServerSideProps` code here
    }
))

next-redux-wrapperv7 开始,wrapper.getServerSideProps签名已更改。

export const getServerSideProps = withAuthUserSSR()(wrapper.getServerSideProps(
    (store) => async ({ AuthUser, res, req }) => {
        // `getServerSideProps` code here
    }
))
于 2021-02-18T22:29:33.143 回答