Ant Design Formフォームにおけるget FieldDecorator使用異常のまとめ


背景:Ant Design Formコンポーネントを使う時、Formコンポーネントはcreate方法を提供しています.form.create(component)を使って処理した後のcomponentはprops.formを受信します.props.formの下の一連の方法を使うと、自動検査機能を備えたフォームを簡単に書き出すことができます.コードは以下の通りです.
//    Form.create                     
const SendEnquiryForm = Form.create()((props) => {
  const { getFieldDecorator } = props.form;
  const prefixSelector = getFieldDecorator('areaCode', {
    initialValue: '+65',
  })(
    
  );

  return (
    
handleSubmit(e)}> {getFieldDecorator('fullname', { rules: [{ required: true, message: "Please input your full name!", }], })( )}
); });
ここでは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で設定できます.