首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写react hook

如何编写react hook
EN

Stack Overflow用户
提问于 2021-09-15 16:26:26
回答 1查看 34关注 0票数 1

我得到了一个这样的页面。我想用它来包装其他小组件,并将它们放入路由器中。我的react路由器是5.0版

代码语言:javascript
复制
import styled from 'styled-components'
import Footer from '../footer/Footer'
import Header from '../header/Header'

const PageWrap: any = ({ children }) => {
    return (
        <>
            <Header />
            <div className="other-small-comp">{children}</div>
            <Footer />
        </>
    )
}
export default PageWrap

使用函数PageWrap,我希望能够在路由中执行以下操作

代码语言:javascript
复制
import Account from './Account'
Import Login from './Login'
<Switch>
    <PrivateRoute path={urls.account} exact component={PageWrap(Account)} />
    <Route path={urls.login} exact component={Login} />
</Switch>

如何才能不出错地执行PageWrap(Account)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 16:30:22

您正在犯的错误是,您的包装器是一个以props为参数的React组件,而不是一个以另一个组件为参数的函数。为了向您展示如何创建包装器,我将使用AirBnb样式指南示例:

代码语言:javascript
复制
export default function withFoo(WrappedComponent) {
  function WithFoo(props) {
    return <WrappedComponent {...props} foo />;
  }

  const wrappedComponentName = WrappedComponent.displayName
    || WrappedComponent.name
    || 'Component';

  WithFoo.displayName = `withFoo(${wrappedComponentName})`;
  return WithFoo;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69196735

复制
相关文章

相似问题

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