Comment ajouter dynamiquement des propriétés basées sur les conditions dans les composants React ?
P粉665427988
2023-08-20 14:54:00
<p>Existe-t-il un moyen d'ajouter des propriétés à un composant React uniquement lorsque certaines conditions sont remplies ? </p>
<p>Je dois ajouter les attributs obligatoires et readOnly à l'élément de formulaire en fonction des conditions de l'appel Ajax post-rendu, mais je ne sais pas comment résoudre ce problème car <code>readOnly="false"< /code> est complètement différent de l'omission d'attributs. </p>
<p>L'exemple ci-dessous devrait illustrer ce que je veux, mais cela ne fonctionne pas. </p>
<blockquote>
<p>(Erreur d'analyse : identifiant inattendu)</p>
</blockquote>
<pre class="brush:js;toolbar:false;">function MyInput({isRequired}) {
return <input classname="foo" {isRequired ? "required" : ""} />
}
≪/pré>
<p><br /></p>
La réponse de
juandemarco est généralement correcte, mais voici une autre option.
Construisez un objet à votre goût :
Utilisez spread pour le rendu, et vous pouvez également choisir de transmettre d'autres accessoires.
Apparemment, pour certaines propriétés, si la valeur transmise à React n'est pas une vraie valeur, React omettra intelligemment la propriété. Par exemple :
Vous obtiendrez :
Mise à jour : Si quelqu'un est curieux de savoir comment et pourquoi cela se produit, vous pouvez trouver les détails dans le code source de ReactDOM, en particulier aux lignes 30 et 167 du fichier DOMProperty.js.