React.Children

Posted

tags:

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

一直分不清React.Children与this.props.children是什么关系。其实很简单,this.props.children是子组件的集合,相当于把子组件当做组件的属性传入。

this.props.children有三种情况:

1.没有子组件时,数据类型为undefined

2.只有一个子组件时,数据类型为object

3.有多个子组件时,数据类型为数组

 

React.Children是React提供用来处理this.props.children的API,不用考虑this.props.children的数据类型,React.Children有map、forEach、count等方法

渲染组件:

ReactDOM.render(
    <APP>
        <div data={1}></div>
        <div data={2}></div>
        <div data={3}></div>
    </APP>,
    document.getElementById(‘root‘)
);

组件内:

export default class APP extends Component {
    constructor(props){
        super(props);
    }
    render(){
        return (
            <ul>
            {React.Children.map(this.props.children,(child) =>{
                return (
                    <li>序号:{child.props.data}</li>
                )
            })}
            </ul>
            )
    }
}

 

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

React.Children.only 预计在使用 Ref 时会收到单个 React 元素子错误

React.children.only 期望接收单个反应元素子导航器

react children技巧总结

React源码 React.Children

React.Children

react组件children变化不触发视图更新