Comment passer des éléments facultatifs à un composant comme un accessoire dans reactjs
J'essaie de trouver le bon "réagir" pour passer à une option prop qui est un Élément d'un conteneur de composant, qui est géré différemment des enfants de la composante.
Pour un exemple simple, j'ai un composant du Panneau, ce qui rend ses enfants, qui a aussi une option "titre" prop (qui est un élément plutôt qu'une chaîne, pour le bien de l'exemple) qui est spécialement rendu (mettez-les dans un endroit spécial, avec des comportements spéciaux dans tout en maintenant l'abstraction.
Une option est d'avoir un composant qui est sorti des enfants et rendu spécialement:
<Panel>
<Title> some stuff</Title>
<div> some other stuff</div>
</Panel>
Mais il semble bizarre d'avoir des enfants extraits et traités séparément comme ça.
Comment est-ce normalement traitée à réagir, et je suis même de penser à ce la bonne manière
OriginalL'auteur Zak Kus | 2015-11-10
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de faire quelque chose de spécial. Il suffit de passer le titre de la composante comme un accessoire, et ensuite utiliser
{this.props.title}
partout où vous voulez qu'il soit rendu:Si vous ne passez pas d'une quelconque valeur pour le
title
prop (ou si la valeur estfalse
,null
, ouundefined
) alors rien ne sera rendus là.C'est un motif assez commun à Réagir.
Est-il un commun réagir motif (ou même possible) de restreindre le titre propType être un vrai Titre de composant?
OriginalL'auteur Jordan Running
vous pouvez faire quelque chose comme ceci
fondamentalement, si vous passez un élément de titre comme un accessoire, puis créer un élément et de le rendre. d'autre vient de mettre à null...
pour le créer, vous feriez quelque chose comme ça.
C'est en général de savoir comment réagir si la poignée en option composants enfants
OriginalL'auteur John Ruddell
Lorsque vous avez besoin d'un attribut à partir de votre option
prop
, vous aurez à vérifier d'abord si leprop
a été livré. Sinon, vous obtiendrez un:Conditionnelle contexte de rendu (en fonction de mon facultatif
this.props.ignore
tableau), ce ne travail:Au lieu de cela, vous devriez faire:
OriginalL'auteur Franco Méndez
Une chose que vous pouvez faire est d'avoir par défaut des accessoires (généralement initialisé à un no-op) pour votre composant.
Par exemple, si vous souhaitez disposer en option d'une fonction prop:
De cette façon, les composants parents peuvent choisir de passer la fonction prop ou pas et que votre application ne plante pas parce que
OriginalL'auteur Taiwosam