请问怎么写出包含子组件的组件?就好像TabBarIOS可以有N个TabBarIOS.Item。这个怎么实现的?



  • 请问怎么写出包含子组件的组件?就好像TabBarIOS可以有N个TabBarIOS.Item。这个怎么实现的?请教大神!


  • administrators

    没怎么看懂你的问题



  • 就是,我现在写出来的组件是这么调用的:<XXX/> 如果这样调用:<XXX><Text>hellow</Text></XXX>
    那么中间那个Text怎么被XXX接收到?



  • this.props.children 这个属性接收到的就是你的全部孩子,有几种可能:

    1. undefined,表示没有孩子
    2. 单个Element/string,只有单个孩子
    3. 一个数组,其中每一个元素是Element 或string,表示所有孩子。

    React中有一系列辅助函数(譬如onlyChild)等用于处理和检测孩子,不过这些函数并没有文档。

    需要注意的是接受到的Element并非Component,只是用于描述组件信息的一个简单结构,在子组件被mount之前(也就是ref回调执行之前),你并不能拿到子组件的对象引用。



  • @tdzl2003 谢谢站长,完全懂了!



  • @Harvey 补充一下,实际上children也可能是别的类型,这时候外部必须用{}来传递值,不过正常情况下不这么用。


登录后回复