antd-mobile
默認的是輸入框錯誤處理方式爲在輸入框右側顯示錯誤圖標,點擊圖標觸發綁定的onErrorClick
事件,這樣顯得不夠直觀,現想利用現有組件參數對其進行封裝,達到在右側不顯示錯誤圖標,將錯誤信息顯示到輸入框下側。
Antd Mobile Design --> InputItem
props參數javascript
onErrorClick
:原來綁定的是一個點擊事件,爲了能夠不添加多餘的屬性,且充分利用該屬性(由於右側錯誤圖標不須要後,該事件便無效了
),如今變爲傳入一個錯誤數組
或者字符串
,用於顯示錯誤提示信息tipStyle
:自定義錯誤提示語的樣式,能夠不傳入,會使用封裝內默認的提示樣式,傳入則增長或覆蓋已有樣式錯誤提示文字的顯示位置java
InputItem
的組件樣式注意組件內使用InputItem
時將error={false}
放在後面,這樣就能避免顯示出右側的錯誤圖標,原理不用多說你們應該也懂的^_^ ^_^
import React, { Component } from 'react'; import { InputItem } from 'antd-mobile'; const cls = 'trust-mobile-input'; class MobileInputItem extends Component { render() { const {type = 'text', labelNumber = 5, error = false, children = '', onErrorClick = '', tipStyle = {}, ...other} = this.props; const errorTipStyle = { color: '#f5222d', padding: '5px 0px', textAlign: 'left', position: 'relative', fontSize: 12, ...tipStyle } return ( <div className={cls}> <InputItem type={type} {...other} error={false}>{children}</InputItem> { error && <div className="am-list-item" style={{height: 'auto', minHeight: 0}}> { children && <div className={`am-input-label am-input-label-${labelNumber}`}></div> } <div className="am-input-control"> <div style={{...errorTipStyle}}> {onErrorClick} </div> </div> </div> } </div> ) } } export default MobileInputItem;
錯誤的顯示隱藏過渡效果
,錯誤時輸入框文字顏色
等等