React design Model 模態框中加入表單,並進行提交

                                                   React design Model 模態框中加入表單

一、我要實現的功能:選中表格中的一行數據進行編輯,編輯方式爲,彈出模態框,顯示相應的數據,並進行表單提交操作,從而實現數據的修改,界面如下圖:

二、說一說我遇到的問題,那就是在獲取表單數據,使用setFieldsValue,對錶單進行賦值時報了錯,報錯如下圖:

分析一下原因,我這裏我是使用了refs去獲取form對象,我們看一下頁面代碼:

這個代碼的作用就是,彈出模態框,並顯示錶單。注意看:我這裏ref={this.formRef}是寫在了Form組件裏,彈出模態框時,表單也顯示了,但爲什麼沒有獲取到setFieldsValue呢?經過查詢資料可以知道:可以通過React.createRef()創建Refs並通過ref屬性聯繫到React組件。Refs通常當組件被創建時被分配給實例變量,這樣它們就能在組件中被引用。從這句話中可以看出,form組件並沒有被創建,所以無法獲取到實例變量。

但這裏有一個很詭異的情況,那就是我們先用form表單進行submit提交數據後,它卻能夠獲取到setFieldsValue對象了,也不會報之前的錯了。

這裏特此說明下,就是一開始點擊編輯,並沒有創建form組件,無法獲取到refs對象,當進行數據添加後,表單觸發refs,創建了refs對象,所以再次點編輯就是正常的。

三、說一說解決辦法:

PS:今天突然又遇到這個問題,又想了一種辦法,特此加上:

那就是我們用form包裹model模態框,這樣就能操作到refs了。

這裏我查詢了官方的文檔,在裏面找到了答案,這裏就不用過多的重複說,看了文檔代碼你就明白了:

文檔網址:https://ant.design/components/form-cn/#components-form-demo-register

這裏只是對自己在學習中遇到的一些困難做一下記錄,裏面還有許多沒有弄清楚的地方,希望哪個大神看到了,能帶帶我。

有問題請聯繫我:[email protected]

編寫人:洪偉富

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章