<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
確認碼控制元件也是一個較為常見的元件了,乍一看,貌似較難實現,但實則主要是障眼法。
上圖 CodeInput
元件的 UI 結構如下:
<View style={[styles.container]}> <TextInput autoFocus={true} /> <View style={[styles.cover, StyleSheet.absoluteFillObject]} pointerEvents="none"> {cells.map((value: string, index: number) => ( <View style={[styles.cell]}> <Text style={styles.text}>{value}</Text> </View> ))} </View> </View>
TextInput
用於彈出鍵盤,接收使用者輸入,在它上面使用絕對定位覆蓋了一個用於旁路顯示的 View[style=cover]
。
這就是 CodeInput
的實現原理了。
需要注意以下幾個點:
TextInput
的 autoFocus
屬性,控制進入頁面時是否自動彈出鍵盤。View[style=cover]
的 pointerEvents
屬性為 none
,不接收觸屏事件。這樣當用戶點選該區域時,底下的 TextInput
會獲得焦點。View[style=container]
的高度,這個高度就是數位單元格的寬高。使用 onLayout
回撥來獲得容器的高度,用來設定數位單元格的寬高。const { onLayout, height } = useLayout() const size = height return ( <View style={[styles.container, style]} onLayout={onLayout}> <TextInput /> <View style={[styles.cover, StyleSheet.absoluteFillObject]}> {cells.map((value: string, index: number) => ( <View style={[ styles.cell, { width: size, height: size, marginLeft: index === 0 ? 0 : spacing } ]}> <Text style={styles.text}>{value}</Text> </View> ))} </View> </View> )
cells
是一個字元陣列,用於存放數位單元格的文字內容,它的長度是固定的。它的內容由使用者輸入的值拆分組成,如果長度不夠,則填充空字串 ""
。export default function CodeInput({ value, length = 4 }) { const cells = value.split('').concat(Array(length - value.length).fill('')) }
GitHub 上這個庫實現了比較酷炫的效果。有需要的小夥伴可以使用。
這裡有一個範例,供你參考。
以上就是React Native 中實現確認碼元件範例詳解的詳細內容,更多關於React Native確認碼元件的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45