如何渲染组件的子组件而不是整个组件

时间:2019-09-19 22:59:01

标签: reactjs react-component react-portal

我有一个react-bnb-gallery软件包,其中包含一个默认的导出组件,名为ReactBnbGallery。它通过门户显示了画廊并且运行良好,但是我的目标是使该画廊以html内联并嵌套在组件树中。

目前我所拥有的:

<SomeWrapperComponent>
  <ReactBnbGallery />     // contains not accessible <Gallery/> 
<SomeWrapperComponent />

我想要这个:

<SomeWrapperComponent>
  <Gallery/> 
<SomeWrapperComponent />

通过这种方式,我想省略门户并在自己的布局中添加图库。 有任何建议吗?

我考虑过<ReactBnbGallery>上的一些HOC 也许Portal可以使用一些api或其他切换器来简单地关闭

先谢谢!

1 个答案:

答案 0 :(得分:0)

现在可以在门户网站外部访问Gallery组件。

现在可以使用以下代码:

import { Gallery } from 'react-bnb-gallery';

const MyComponent = () => (
  <Gallery photos={[...]} />
);

如果您还想使用主要的ReactBnbGallery组件,则新方法是执行以下操作:

import { ReactBnbGallery } from 'react-bnb-gallery';

const MyComponent = () => (
  { /* ReactBnbGallery wraps the Gallery component */ }
  <ReactBnbGallery photos={[...]} />
);

更新已发布在NPM中,新版本为1.1.7