Problème avec defaultValue ou valeur non valide dans FormItem ANTD
P粉265724930
2023-08-22 23:51:25
<p>J'ai essayé d'utiliser le code suivant mais les champs ne sont pas liés. L'attribut onChange fonctionne correctement</p>
<pre class="brush:php;toolbar:false;">const { getFieldDecorator, getFieldError, isFieldTouched } = this.props.form;
const NameError = isFieldTouched("Nom") &&
<FormItem validateStatus={NameError ? "erreur" : ""} help={NameError ""}>
{getFieldDecorator("Nom", {
//valeurinitiale : this.state.Data.Name,
règles : [{ requis : vrai, message : "Veuillez saisir le nom du composant !" }]
})(
<Entrée
className="form-control"
type="texte"
nom="Nom"
defaultValue={this.state.Data.Name}
onChange={this.onChange}
/>
)}
</FormItem></pre>
<p>Est-ce que j'ai raté quelque chose ? J'ai même utilisé <code>input</code> au lieu de <code>Input</code></p>
<p><strong>Edit</strong> Dans la méthode <code>componentDidMount</code>
<pre class="brush:php;toolbar:false;">fetch('http://localhost:5728/Fields/get/' + this.state.Data.Id)
.then(results=>{
retourner les résultats.json()
})
.then(data=>{
this.setState({
Données: {
Identifiant : data.field.Id,
Nom : data.field.Name,
Description : données.champ.Description,
Valeur : data.field.Value
}
})
})</pré>
<p>J'ai essayé d'utiliser <code>initialValue</code> mais cela ne fonctionne que si la valeur d'état est définie dans la méthode <code>constructor</code> Les modifications ne sont pas reflétées lors de l'appel de l'API. </p>
Vous pouvez également utiliser des crochets
La documentation indique :
Lorsque les données sont chargées depuis le backend, appelez simplement
setFieldsValue
:Ou plus succinctement, si le
data.field
du backend correspond exactement au nom du champ :