首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有高阶函数的NextJS中使用持久布局

在具有高阶函数的NextJS中使用持久布局
EN

Stack Overflow用户
提问于 2021-08-02 10:50:56
回答 1查看 610关注 0票数 2

我在下一个使用持久布局时使用亚当·瓦桑方法。有没有办法让他们与高阶函数一起工作?我不太清楚霍夫是怎么工作的。

我的_app.js

代码语言:javascript
复制
function MyApp({ Component, pageProps }) {

    const Layout = Component.layout || (children => <>{children}</>)

    return (
        <Layout>
            <Component {...pageProps} />
        </Layout>
    )
}

示例页面如下所示

代码语言:javascript
复制
const Home = () => {

    return (
        <>
        ...
        </>
    )
}

Home.Layout = BaseLayout;

export const getServerSideProps = withAuthUserTokenSSR()()

export default withAuthUser()(Home)

如果我移除HOF布局很好,否则我得到:

错误:对象作为React子对象无效(找到:带有键{子类}的对象)。如果您打算呈现一个子集合,请使用数组代替。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-02 17:27:40

您需要将layout组件应用到高阶组件本身,因为它可能正在包装原始Home组件并隐藏Home.layout

代码语言:javascript
复制
const Home = () => {
    return (
        <></>
    )
}

const HomeWithAuth = withAuthUser()(Home)

HomeWithAuth.layout = BaseLayout;

export default HomeWithAuth

另外,确保在页面组件中使用相同的变量名(相同的大小写,例如layoutLayout),以及在_app中引用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68620339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档