Réagir accessoires.les enfants n'est pas de la matrice de

Selon la réagir docs, si un composant a plusieurs enfants, cette.accessoires de jeu.les enfants devraient être un tableau.

J'ai le composant suivant:

export class Two extends React.Component {

    componentDidMount() {
        console.log(Array.isArray(this.props.children)); //false
    }

    render() {

        return(
            <div>
                {this.props.children}
            </div>
        );
    }

};

Que je passe les enfants dans une autre composante de la méthode render ():

<Two>
    <Img src="/photos/tomato.jpg"/>
    <Img src="/photos/tomato.jpg"/>
</Two>

Pourquoi est-ce.accessoires de jeu.enfants pas un tableau? Plus important encore, comment puis-je obtenir pour être un?

  • Aussi, selon le docs, les enfants est opaque structure de données.
  • Que devez-vous faire avec this.props.children? Si vous souhaitez effectuer une itération sur tous les enfants que vous avez des outils comme dans Réagir les Enfants utilitaires.
  • Est-ce parce que l'Img est en majuscule?
  • Img est un composant personnalisé que j'ai créé
  • Qui, finalement, a travaillé, mais il se sent un peu maladroit pour quelque chose que j'imagine est tout à fait commun. Cela a fait le tour: let children = []; React.Children.forEach(this.props.children, function(child) { children.push(child); });
  • Je dirais que lors de l'utilisation de Réagir de confinement composition: reactjs.org/docs/composition-vs-inheritance.html#containment. Dans ce scénario, où nous sommes injecter le contenu dans un autre composant, accessoires.les enfants seront toujours un tableau d'objets. Bien que je ne suis pas sûr de ce fait, je pense donc que ce doit être sa propre cause. Peut-être que je vais en créer un.