成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Formik與antd-mobile的移動端的表單實踐(下)

sihai / 914人閱讀

摘要:會在用戶每次按下提交時進行一次完整校驗或更改時進行一次單表單項的驗證。傳入為表單值與外部自定義傳入的返回值為一個對象的表單提交處理而表單提交的處理,和我們做表單驗證類似,只需要參考官方示例我們就可以簡單的實現(xiàn)表單提交功能。

大家好,工作閑暇之余又來續(xù)寫一下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的表單提交處理

而表單提交的處理,和我們做表單驗證類似,只需要參考官方示例我們就可以簡單的實現(xiàn)表單提交功能。值得注意的是setSubmitting()函數,我們按下提交按鈕時,F(xiàn)ormik會自動幫我們disable掉提交按鈕,防止多次提交的發(fā)生,而setSubmitting()函數則是用于控制submit按鈕,在ajax完成/失敗后我們可以通過setSubmitting(false)來讓我們的提交按鈕可以進行下一次提交。

handleSubmit: (
    values,
    {
      props,
      setSubmitting,
      setErrors /* setValues, setStatus, and other goodies */,
    }
  ) => {
  // Ajax請求進行表單提交
}
總結

Formik在工作中也是幫助我快速構建出了表單頁面,在封裝完UI庫的相關組件后,靜態(tài)表單的構建變得異常的快速,而動態(tài)表單也可以通過jsx語法的判斷來進行,在制作表單這一塊,F(xiàn)ormik真的做到了像它所說的那樣:

Build forms in React, without the tears            
               
                                           
                       
                 

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/98010.html

相關文章

  • 一些基于React、Vue、Node.js、MongoDB技術棧實踐項目

    摘要:利用中間件實現(xiàn)異步請求,實現(xiàn)兩個用戶角色實時通信。目前還未深入了解的一些概念。往后會寫更多的前后臺聯(lián)通的項目。刪除分組會連同組內的所有圖片一起刪除。算是對自己上次用寫后臺的一個強化,項目文章在這里。后來一直沒動,前些日子才把后續(xù)的完善。 歡迎訪問我的個人網站:http://www.neroht.com/? 剛學vue和react時,利用業(yè)余時間寫的關于這兩個框架的訓練,都相對簡單,有的...

    tangr206 評論0 收藏0
  • Next輕量級框架主流工具整合

    摘要:又從開始學習新的東西了,想著還是記錄一下學習歷程,有輸入就要有輸出吧,免得以后給忘記學了些什么框架與主流工具的整合地址首先,項目,學習里面的。如有錯誤和問題歡迎各位大佬不吝賜教輕量級框架與主流工具的整合二完善與優(yōu)化 前言 老大說以后會用 next 來做一下 SSR 的項目,讓我們有空先學學。又從 0 開始學習新的東西了,想著還是記錄一下學習歷程,有輸入就要有輸出吧,免得以后給忘記學了些...

    FWHeart 評論0 收藏0
  • React移動端和PC端生態(tài)圈使用匯總

    摘要:調用通過注冊表調用到實例,透過的,調用到中的,最后通過,調用,根據參數相應模塊執(zhí)行。京東的,多端解決方案是一套遵循語法規(guī)范的多端開發(fā)解決方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 對于一項技術,我們不能停留在五分鐘狀態(tài),特別喜歡一句話,用什么方式繪制UI界面一點不重要,重要的是底層的思維,解決問題和優(yōu)化...

    kun_jian 評論0 收藏0
  • React移動端和PC端生態(tài)圈使用匯總

    摘要:調用通過注冊表調用到實例,透過的,調用到中的,最后通過,調用,根據參數相應模塊執(zhí)行。京東的,多端解決方案是一套遵循語法規(guī)范的多端開發(fā)解決方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 對于一項技術,我們不能停留在五分鐘狀態(tài),特別喜歡一句話,用什么方式繪制UI界面一點不重要,重要的是底層的思維,解決問題和優(yōu)化...

    J4ck_Chan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<