無効なdefaultValueまたはFormItem ANTDの値に関する問題
P粉265724930
2023-08-22 23:51:25
<p>次のコードを使用してみましたが、フィールドはバインドされていません。 onChange 属性は正常に機能します</p>
<pre class="brush:php;toolbar:false;">const { getFieldDecorator, getFieldError, isFieldTouched } = this.props.form;
const NameError = isFieldTouched("名前") && getFieldError("名前");
<FormItem validateStatus={NameError ? "error" : ""} help={NameError || ""}>
{getFieldDecorator("名前", {
//初期値: this.state.Data.Name,
ルール: [{ 必須: true, メッセージ: "コンポーネント名を入力してください!" }]
})(
<入力
クラス名="フォームコントロール"
type="テキスト"
name="名前"
defaultValue={this.state.Data.Name}
onChange={this.onChange}
/>
)}
</FormItem></pre>
<p>何か足りないことがありますか? Input
の代わりに input
を使用しました。
<p><strong>編集</strong> <code>componentDidMount</code> メソッドで、API からデータを取得します。
<pre class="brush:php;toolbar:false;">fetch('http://localhost:5728/Fields/get/' this.state.Data.Id)
.then(結果=>{
results.json() を返す
})
.then(data=>{
this.setState({
データ: {
ID: data.field.Id、
名前: データ.フィールド名、
説明: data.field.Description、
値: data.field.Value
}
})
})</pre>
<p><code>initialValue</code> を使用してみましたが、これは状態値が <code>constructor</code> メソッドに設定されている場合にのみ機能します。 API呼び出し時には変更が反映されません。 </p>
フックも使用できます
リーリードキュメントには次のように記載されています:
データがバックエンドからロードされるときは、
を呼び出すだけです。 リーリーsetFieldsValue
:より簡潔に言うと、バックエンドの
リーリーdata.field
がフィールド名と正確に一致する場合: