如果道具是组件,如何渲染组件?

How to render a Component if the prop is a component?

我想制作一个 'flexible' 组件,但不确定这是否是一个好的代码:

{
    leftText instanceof Object ? 
        leftText :
           <Text>
              { leftText }
           </Text>
}

因此,如果我收到一个组件作为道具,我不想将它包装到另一个组件中,而是渲染组件本身。否则只想将道具包装在文本组件中。

这个问题有好的解决方法吗?

是的,你的方法绝对有效!但是只是验证 child 是否是 Object 是非常通用的。您可以使用:

{
    React.IsValidElement(leftText) ? 
        leftText :
           <Text>
              { leftText }
           </Text>
}