React中的this.props.children

Posted juxiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React中的this.props.children相关的知识,希望对你有一定的参考价值。

React this.props.children

this.props对象的属性与组件的属性一一对应,但是有一个例外,就是this.props.children属性。它表示组件的所有子节点。

var  NotesList = React.createClass({
    render(){
        return (
            <ol>
                {
                    React.Children.map(this.props.children,function(child){
                        return <li>{child}</li>;
                    })
                }
            </ol>
        )
    }
})

ReactDOM.render(
    <NotesList>
        <span>{hello}</span>
        <span>{world}</span>
    </NotesList>,
    document.body
)

上面代码的NotesList组件有两个span子节点,他们都可以通过this.props.children读取。

这里需要注意,this.props.children的值有三种可能:如果当前组件没有子节点,它就是undefined;如果有一个子节点,数据类型是Object;如果有多个子节点,数据类型就是array。所以,处理this.props.children的时候要小心。

React提供一个工具方法React.Children来处理this.props.children。我们可以用React.Children.map来遍历子节点,而不用担心this.props.children的数据类型是undefined还是object

以上是关于React中的this.props.children的主要内容,如果未能解决你的问题,请参考以下文章

React 深入系列1:React 中的元素组件实例和节点

React开发(214):React中的Fragments

将 Relay 中的数据与 React Native 中的 react-navigation 一起使用时,未获取 Relay 中的数据

浅析react中的react-router和react-router-dom

深入理解react中的虚拟DOMdiff算法

深入理解react中的虚拟DOMdiff算法