關於antd表單的雙向繫結

2021-09-01 02:25:33 字數 889 閱讀 7355

react的input要進行雙向繫結需要定義value和onchange屬性來雙向繫結,當表單元素過多時就顯得麻煩。

antd的表單提供了form元件,form元件提供getfielddecorator來進行雙向繫結

公司使用antd+mobx進行開發,需要將mobx狀態繫結到antd的表單上。

官網對於redux、mobx結合使用的例子很少。下面是我自己在專案中使用mobx和表單的雙向繫結

...

const

objtoform

=(obj)

=>

for(

let[key,value]

of object.

entries

(obj)))

}return target

}const form = form.

create(,

(props),}

)@inject

('masterdatabasestore'

) @form @observer

class

maintainmodal

extends

react.component

}

onfieldschange是在表單值變化時呼叫,將變化的值繫結到store中;

store中的值如何繫結到表單中呢?

看rc-form的原始碼可以看到當我們用@form修飾器語法修飾react元件時,已經修改了元件類的行為:

關於antd表單遇見的一些其他問題可以參考這裡

表單的雙向繫結

1.html表單元素是有自己預設行為的,如 和 之類的表單元素通常自己維護state,並根據使用者輸入進行更新。2.而在react中,可變狀態 mutable state 通常儲存在元件的state屬性中,並且只能通過使用setstate 來更新。稱之為受控元件,和vue的表單雙向繫結類似。1.為表...

雙向繫結表單資料

一.核取方塊 checkednames為選中的核取方塊的value的值,陣列值按照核取方塊選中順序排列 多個核取方塊繫結到陣列 for jack jack for john john for mike mike checked names newvue 二.單選按鈕 picked輸出值為選中的單選按...

react 表單 雙向繫結的實現

在 react 開發中,經常遇到 input 輸入框改變值的時候,要定義乙個函式,該函式內部執行 setstate 的操作,才能改變 input 的值。如果表單元素多了以後,就會定義很多的這種函式,使 變得冗餘。下面在 react 中實現乙個類似於 vue 的表單雙向繫結的邏輯。this state...