摘要:會在用戶每次按下提交時進行一次完整校驗或更改時進行一次單表單項的驗證。傳入為表單值與外部自定義傳入的返回值為一個對象的表單提交處理而表單提交的處理,和我們做表單驗證類似,只需要參考官方示例我們就可以簡單的實現表單提交功能。
大家好,工作閑暇之余又來續寫一下Formik這個庫的文章了,這次文章主要內容為如下:
更多表單組件的封裝示例
單選/多選按鈕
選擇器
時間選擇器
文本輸入框
提交按鈕
Formik的表單驗證
Formik的表單提交處理
總結
表單組件的封裝在上篇我們簡單的封裝了一下InputItem組件,并為該組件增加了錯誤提示功能,接下來我們可以封裝我們常用的表單組件并通過同樣的方法為其添加錯誤提示功能。
HOCErrorInItem(MyInputItem,MyErrorItem)單選/多選按鈕 選擇器 時間選擇器 文本輸入框 提交按鈕 Formik的表單驗證
要驗證表單,我們需要做的很簡單,就跟上篇官方示例中的代碼一樣,在withFormik()函數傳入的對象中,修改validate方法即可。所有驗證邏輯可以在這里一次解決。Formik會在用戶每次按下提交時進行一次完整校驗或touched更改時進行一次單表單項的驗證。
PS: 失去焦點相關對象為touched,可以通過setFieldTouched()函數來設置它。
// 傳入為表單值與外部自定義傳入的props // 返回值為一個errors對象 validate: (values, props) => { const errors = {}; if (!values.email) { errors.email = "Required"; } else if ( !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i.test(values.email) ) { errors.email = "Invalid email address"; } return errors; },Formik的表單提交處理
而表單提交的處理,和我們做表單驗證類似,只需要參考官方示例我們就可以簡單的實現表單提交功能。值得注意的是setSubmitting()函數,我們按下提交按鈕時,Formik會自動幫我們disable掉提交按鈕,防止多次提交的發生,而setSubmitting()函數則是用于控制submit按鈕,在ajax完成/失敗后我們可以通過setSubmitting(false)來讓我們的提交按鈕可以進行下一次提交。
handleSubmit: ( values, { props, setSubmitting, setErrors /* setValues, setStatus, and other goodies */, } ) => { // Ajax請求進行表單提交 }總結
Formik在工作中也是幫助我快速構建出了表單頁面,在封裝完UI庫的相關組件后,靜態表單的構建變得異常的快速,而動態表單也可以通過jsx語法的判斷來進行,在制作表單這一塊,Formik真的做到了像它所說的那樣:
Build forms in React, without the tears
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98010.html
摘要:利用中間件實現異步請求,實現兩個用戶角色實時通信。目前還未深入了解的一些概念。往后會寫更多的前后臺聯通的項目。刪除分組會連同組內的所有圖片一起刪除。算是對自己上次用寫后臺的一個強化,項目文章在這里。后來一直沒動,前些日子才把后續的完善。 歡迎訪問我的個人網站:http://www.neroht.com/? 剛學vue和react時,利用業余時間寫的關于這兩個框架的訓練,都相對簡單,有的...
摘要:又從開始學習新的東西了,想著還是記錄一下學習歷程,有輸入就要有輸出吧,免得以后給忘記學了些什么框架與主流工具的整合地址首先,項目,學習里面的。如有錯誤和問題歡迎各位大佬不吝賜教輕量級框架與主流工具的整合二完善與優化 前言 老大說以后會用 next 來做一下 SSR 的項目,讓我們有空先學學。又從 0 開始學習新的東西了,想著還是記錄一下學習歷程,有輸入就要有輸出吧,免得以后給忘記學了些...
摘要:調用通過注冊表調用到實例,透過的,調用到中的,最后通過,調用,根據參數相應模塊執行。京東的,多端解決方案是一套遵循語法規范的多端開發解決方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 對于一項技術,我們不能停留在五分鐘狀態,特別喜歡一句話,用什么方式繪制UI界面一點不重要,重要的是底層的思維,解決問題和優化...
摘要:調用通過注冊表調用到實例,透過的,調用到中的,最后通過,調用,根據參數相應模塊執行。京東的,多端解決方案是一套遵循語法規范的多端開發解決方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 對于一項技術,我們不能停留在五分鐘狀態,特別喜歡一句話,用什么方式繪制UI界面一點不重要,重要的是底層的思維,解決問題和優化...
閱讀 3175·2021-10-14 09:42
閱讀 3569·2019-08-26 13:56
閱讀 3464·2019-08-26 11:59
閱讀 943·2019-08-23 18:00
閱讀 2208·2019-08-23 17:51
閱讀 3530·2019-08-23 17:17
閱讀 1481·2019-08-23 15:11
閱讀 5176·2019-08-23 15:05