Children in Props

Last Updated : 20 Jan, 2026

Children in props allow components to receive and display nested content passed between their opening and closing tags. This makes components more flexible and reusable without hardcoding their inner content.

  • Helps in creating reusable layout and wrapper components.
  • Allows passing JSX, elements, or text as component content.
  • Improves component composition and UI structure.

Working with Children in Props

Working with children in props allows React components to receive, render, and control nested JSX content dynamically, making components more reusable and composable. Here's a breakdown of how children in props work:

Passing JSX Elements as Children

Components can include other components or JSX elements as children. For example, consider a simple Button component that wraps its children in a button element:

Javascript
const Button = ({ children }) => {
  return <button>{children}</button>;
};

When using this Button component, you can pass any JSX element or component as its children, and it will be rendered inside the button element:

Javascript
<Button>
  Click Me
</Button>

In this example, the text "Click Me" is passed as children to the Button component.

Passing Multiple Children

Components can have multiple children, allowing for more complex compositions. You can pass multiple elements or components as children to a component, and they will be rendered in the order they are passed:

Javascript
<Card>
  <h2>Title</h2>
  <p>Description</p>
  <button>Click me</button>
</Card>

Here, the Card component receives multiple children—an h2 element, a p element, and a button element—and renders them inside a card container.

Manipulating Children

Components can manipulate their children using methods like React.Children.map() or React.Children.toArray(). For example, you can iterate over the children and add additional props or modify their behavior:

Javascript
const List = ({ children }) => {
  return (
    <ul>
      {React.Children.map(children, child => {
        return <li>{child}</li>;
      })}
    </ul>
  );
};

In this List component, each child element passed to it is wrapped in an li element.

Conditional Rendering with Children

Components can conditionally render their children based on certain criteria. For instance, you can conditionally render children based on a prop value:

Javascript
const Alert = ({ show, children }) => {
  return show ? <div className="alert">{children}</div> : null;
};

Here, the Alert component renders its children only if the show prop is true.

Comment