antd Form表單讀取不到input的值

今天上午突然反饋了一個問題,表單中的一個輸入框用戶明明輸入了,但是提交到後臺之後是沒有數據的。我在本地測試了一下,發現也是同樣的情況。後來仔細看了一下代碼,原來的input的外面包裹了一個Fragment元素,後來我將Fragment元素修改爲div或者其他標籤,都是可以正常獲取到這個input的值的,但是就是Fragment包裹起來的話獲取到始終都是undefined。

從rc-form中看getFieldDecorator源代碼其是調用React.cloneElement來返回一個最終元素的,但是不知道爲什麼對於Fragment就是會有些不太一樣。

用div包裹的input最終在控制檯中是這樣的:

不使用任何父元素,直接用input是這樣的:

使用了Fragment之後是這樣的:

從圖中可以看出用Fragment包裹的input少了form表單的一些內部的state值:data_field,data_meta,這或許就是爲什麼一直獲取不到input中值的原因。

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