onlyValid()
Deep filters all non React Elements
onlyValid(children: ReactNode | ReactNode[]): ReactNode[]
Arguments
- children
- The children array from the element where is used.
Return Value
A new children array with only valid React Elements. If there are no valid React Elements, an empty array will be returned.
Example
import React, { ReactElement, ReactNode } from 'react';
import { render } from 'react-dom';
import { onlyValid } from 'react-children-utilities';
interface Props {
  children?: ReactNode;
}
const OnlyValid = ({ children }: Props): ReactElement => <div>{onlyValid(children)}</div>;
const Example = (): ReactElement => (
  <OnlyValid>
    <span>0</span>
    text
    <i>2</i>
    <span>
      <strong>3</strong>
      {null}
      {3}
      {true}
      <strong>
        <strong>4</strong>
        {false}
      </strong>
      {undefined}
    </span>
  </OnlyValid>
);
render(<Example />, document.body);
// Result:
// <div>
//   <span>0</span>
//   <i>2</i>
//   <span>
//     <strong>3</strong>
//     <strong>
//       <strong>4</strong>
//     </strong>
//   </span>
// </div>