RN TextInput 組件有自帶的有keyboardType Props可以直接彈起數(shù)字鍵盤,但是當有從粘貼板上粘貼的內(nèi)容的時候,還是會粘貼進去,如果是購物車輸入加車數(shù)量的時候,需求不允許輸入非數(shù)字字符,那么就需要另外處理。
其中一個解決方案是可以用正則判斷,當 TextInput 發(fā)生 Change的時候,用正則將非數(shù)字字符過濾為空字符串,這樣再進行 setState,就能過濾掉非數(shù)字字符。代碼如下:
<TextInput
style={[styles.skuNumber]}
value={this.state.skuNumber}
keyboardType="phone-pad"
onChangeText={(text) => {
const newText = text.replace(/[^\d]+/, '');
this.setState({ skuNumber: newText });
}}
/>
即可。
有其他方案歡迎評論區(qū)討論。