前言
最近剛開始上手使用react,踩坑無數(shù),準(zhǔn)備好好地把踩過的坑記錄下來筒溃,整理成為學(xué)習(xí)筆記。
在使用 react 中的 From 組件時(shí)沾乘,通常會使用?getFieldDecorator 與?validateFieldsAndScroll怜奖,分別進(jìn)行 數(shù)據(jù)的雙向綁定 與 校驗(yàn)。
validateFieldsAndScroll
validateFieldsAndScroll() 是校驗(yàn)并獲取一組輸入域的值與 Error意鲸,如果校驗(yàn)不通過的菜單域不在可見范圍內(nèi)荞彼,則自動滾動進(jìn)可見范圍魁瞪。
我遇到的坑是,頂部有一個(gè)絕對定位的 bar 灾梦,導(dǎo)致滾動的時(shí)候漱贱,校驗(yàn)不通過的 input 框被擋住了槐雾,需要設(shè)置滾動的位移。
validateFieldsAndScroll(['field1', 'field2'], options, (errors, values) => { })
validateFieldsAndScroll() 可以填入三個(gè)參數(shù)幅狮,第一個(gè)參數(shù)是需要驗(yàn)證的字段名稱募强,第二個(gè)參數(shù)是選項(xiàng)株灸,第三個(gè)參數(shù)是回調(diào)。
?設(shè)置滾動的位移擎值,就是設(shè)置傳入 options 參數(shù)慌烧,
其中,scroll 使用的是?dom-scroll-into-view鸠儿,?
我的問題是由于屹蚊,滾動時(shí) input 被頂部bar擋住了,所以可以設(shè)置top位移解決問題进每。
validateFieldsAndScroll(
????['field1', 'field2'],????
? ?{?
? ? ? ? scroll : { offsetTop : 80 }
????},
? ???(errors, values) => { }
)