Ant Design Formフォームにおけるget FieldDecorator使用異常のまとめ
背景:Ant Design Formコンポーネントを使う時、Formコンポーネントはcreate方法を提供しています.form.create(component)を使って処理した後のcomponentはprops.formを受信します.props.formの下の一連の方法を使うと、自動検査機能を備えたフォームを簡単に書き出すことができます.コードは以下の通りです.
質問:フォームを作成すると、フォームが発行されます. Warning:`get FieldDecorator`will override`value`,so please don't set`value`directly and use`set FieldsValue`to set it.
真因:get FieldDecorator()を使用して包装したコンポーネントは自動的にフォームコンポーネントのvalue及びオンChangeイベントを更新します.これ以上手動でvalue属性を追加する必要はありませんが、オンChangeイベントは必要に応じて追加してデータの変化を監督することができます.本当に手動でvalue属性を追加したからWarningが発生しました.初期のデフォルト値を記入する必要があれば、initial Valueで設定できます.
// Form.create
const SendEnquiryForm = Form.create()((props) => {
const { getFieldDecorator } = props.form;
const prefixSelector = getFieldDecorator('areaCode', {
initialValue: '+65',
})(
);
return (
);
});
ここではprops .form.getFieldDecorator(id,{ })
方法を使用して、Input入力ボックスコンポーネントを包装し、入力された最初のパラメータはこのフィールドのIdを表し、第二のパラメータはプロファイルオブジェクトであり、ここでフォームコントロールの検証ルールrulesが設定されている.質問:フォームを作成すると、フォームが発行されます. Warning:`get FieldDecorator`will override`value`,so please don't set`value`directly and use`set FieldsValue`to set it.
真因:get FieldDecorator()を使用して包装したコンポーネントは自動的にフォームコンポーネントのvalue及びオンChangeイベントを更新します.これ以上手動でvalue属性を追加する必要はありませんが、オンChangeイベントは必要に応じて追加してデータの変化を監督することができます.本当に手動でvalue属性を追加したからWarningが発生しました.初期のデフォルト値を記入する必要があれば、initial Valueで設定できます.