githubEdit

Mapping Over One Or Many Children

In Dynamically Add Props To A Child Componentarrow-up-right, I talked about how a child element can be reconstituted with additional props. The approach I showed will only work in the case of a single child being nested in that component. What if you want your component to account for one, many, or even children?

React comes with a built-in function for mapping that handles these cases.

const ParentWithClick = ({ children }) => {
  return (
    <React.Fragment>
      {React.Children.map(children || null, (child, i) => {
        return <child.type {...child.props} key={i} onClick={handleClick} />;
      })}
    </React.Fragment>
  );
};

The React.Children.map functionarrow-up-right allows mapping over one or many elements and if children is null or undefined, it will return null or undefined respectively.

See a live example herearrow-up-right.

Last updated