React:Antd中Form + Upload 使用


使用

初學者開始可能會不清楚 Form.Item(需要設置 name 屬性) 怎么獲取子節點的值,這里說明一下:

  • Form.Item 從子節點的 value 屬性值獲取,例子:input
  • Form.Item 設置了 getValuePropsvaluePropName 屬性,比如設置了 valuePropName={'checked'} ,則會從子節點的 checked 屬性中去獲取,例子:Switch
  • 如果子節點沒有 value 屬性,而且從其他屬性也無法獲取到需要發送給后端的值,怎么辦?通過 onChange 方法,或 trigger 屬性指定的名稱方法。由於 Form.Item 會自動向子節點傳入 props :value 屬性(或 valuePropName 指定的其他屬性),onChange 方法(或 trigger 指定的其他名稱)。所以可以在子節點調用 props.onChange(value) 方法來傳遞 value 值。onChange 傳入的參數即該 Form.Item 會向后端發送的值。

官方說明

被設置了 name 屬性的 Form.Item 包裝的控件,表單控件會自動添加 value(或 valuePropName 指定的其他屬性) onChange(或 trigger 指定的其他屬性),數據同步將被 Form 接管,這會導致以下結果:

  • 你不再需要也不應該用 onChange 來做數據收集同步(你可以使用 Form 的 onValuesChange),但還是可以繼續監聽 onChange 事件。

  • 你不能用控件的 value 或 defaultValue 等屬性來設置表單域的值,默認值可以用 Form 里的 initialValues 來設置。注意 initialValues 不能被 setState 動態更新,你需要用 setFieldsValue 來更新。

  • 你不應該用 setState,可以使用 form.setFieldsValue 來動態改變表單值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM