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...