微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

反应简单的高阶组件

如何解决反应简单的高阶组件

我的目的是制作一个简单的 Higher Component ,其中我有一个可重用的Section组件,并且可能在其中定义了一些CSS类和<section>标签

import React from 'react'

function SectionWrapper(props) {
  return <section>{props.children}</section>
}

export default SectionWrapper

现在在我的父组件中,我可以像下面这样包装我的子节组件:

<SectionWrapper>
  <SectionTitle />
</SectionWrapper>

<SectionWrapper>
  <List />
</SectionWrapper>

有没有更清洁的方法来实现这一目标?例如。如何将子组件作为道具传递?

解决方法

是的,你可以-

const withSection = (Component) => (props) =>
 <section><Component {...props}/></section>

const EnhancedSectionTitle = withSection(SectionTitle)

然后像使用它

<EnhancedSectionTitle />

EnhancedSectionTitle重命名为您的应用中有意义的任何内容

,

您可以按如下方式将节包装器转换为高阶组件:

const withSection = Component => props => (
  <section>
    <Component {...props} />
  </section>
);

确保您返回一个有效的react组件,该组件可以将prop传递给要包装的基础组件。

用法:

const ComponentWithSection = withSection(MyComponent);

...

<ComponentWithSection myProp={myAwesomeProp} />

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。