ReactNative支付密碼輸入框實現詳解
正文
項目中需求如果涉及錢包,支付等功能,可以大概率會用到輸入密碼組件,也算是個常見組件吧。
之前寫過一個純js的開源組件,使用的類的形式,也比較老瞭,可直接添加npm庫到項目中進行使用。
hooks版本
最近項目需要,又重新寫瞭一個hooks版本的,現在直接上源碼,對於不想添加依賴庫的夥伴,可直接復制源碼到項目中,直接使用。
'use strict'; import React, {useRef, useState} from 'react'; import {StyleSheet, View, Pressable, TextInput} from 'react-native'; // 支付密碼輸入框 const PasswordInput = ({isAutoFocus = false}) => { const [msg, setMsg] = useState(''); const textInputRef = useRef(); const onEnd = (text: string) => { console.log('輸入密碼:', text); }; const _getInputItem = () => { let inputItem = []; for (let i = 0; i < 6; i++) { inputItem.push( <View key={i} style={i === 5 ? [styles.textInputView, {borderRightWidth: 1}] : [styles.textInputView, {borderRightWidth: 0}]}> {i < msg.length ? <View style={{width: 16, height: 16, backgroundColor: '#222', borderRadius: 8}} /> : null} </View>, ); } return inputItem; }; const _onPress = () => { textInputRef?.current.focus(); }; return ( <Pressable onPress={_onPress}> <View style={styles.container}> <View style={{flexDirection: 'row', marginTop: 36, justifyContent: 'center'}}> <TextInput style={styles.textInputMsg} ref={textInputRef} maxLength={6} autoFocus={isAutoFocus} keyboardType="number-pad" defaultValue={msg} onChangeText={text => { setMsg(text); if (text.length === 6) { onEnd(text); } }} /> {_getInputItem()} </View> </View> </Pressable> ); }; const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#ffffff', justifyContent: 'center', alignItems: 'center', }, textInputView: { height: 85 / 2, width: 85 / 2, borderWidth: 1, borderColor: '#c9c7c7', justifyContent: 'center', alignItems: 'center', }, textInputMsg: { height: 45, zIndex: 99, position: 'absolute', width: 45 * 6, opacity: 0, }, }); export default PasswordInput;
使用方式就很簡單瞭:
<PasswordInput />
項目庫地址鏈接Github: github.com/wayne214/re…
以上就是ReactNative支付密碼輸入框實現詳解的詳細內容,更多關於ReactNative支付密碼輸入框的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 適用於React Native 旋轉木馬應用程序介紹
- React Native可復用 UI分離佈局組件和狀態組件技巧
- 用React Native制作一個簡單的遊戲引擎
- 詳解react-navigation6.x路由庫的基本使用
- React Native 中實現確認碼組件示例詳解