Maison > Questions et réponses > le corps du texte
P粉5452181852023-08-21 13:12:17
La réponse de
juandemarco est généralement correcte, mais voici une autre option.
Construisez un objet à votre goût :
var inputProps = { value: 'foo', onChange: this.handleChange }; if (condition) { inputProps.disabled = true; }
Utilisez spread pour le rendu, et vous pouvez également choisir de transmettre d'autres accessoires.
<input value="这个值会被inputProps覆盖" {...inputProps} onChange={overridesInputProps} />
P粉8632950572023-08-21 11:18:48
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 :
const InputComponent = function() { const required = true; const disabled = false; return ( <input type="text" disabled={disabled} required={required} /> ); }
Vous obtiendrez :
<input type="text" required>
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.