Props.children and component composition
The "child" components of a component are available on a special prop, props.children. This prop is very useful for "Compositing" components together, and can make JSX markup more intuitive or reflective of the intended final structure of the DOM:
Which allows us to include an arbitrary number of sub-elements when using the component later:
Props.children can also be manipulated by the component. Because props.children may or may not be an array, React provides utility functions for them as React.Children. Consider in the previous example if we had wanted to wrap each paragraph in its own
Note the use of React.cloneElement to remove the props from the child
tag - because props are immutable, these values cannot be changed directly. Instead, a clone without these props must be used.
Additionally, when adding elements in loops, be aware of how React reconciles children during a rerender, and strongly consider including a globally unique key prop on child elements added in a loop