亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

React Native 中實現(xiàn)確認(rèn)碼組件示例詳解

 更新時間:2022年08月08日 16:39:26   作者:todoit  
這篇文章主要為大家介紹了React Native中實現(xiàn)確認(rèn)碼組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

確認(rèn)碼控件也是一個較為常見的組件了,乍一看,貌似較難實現(xiàn),但實則主要是障眼法。

實現(xiàn)原理

上圖 CodeInput 組件的 UI 結(jié)構(gòu)如下:

<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 的實現(xiàn)原理了。

需要注意以下幾個點:

  • 設(shè)置 TextInputautoFocus 屬性,控制進(jìn)入頁面時是否自動彈出鍵盤。
  • 設(shè)置作為覆蓋物的 View[style=cover]pointerEvents 屬性為 none,不接收觸屏事件。這樣當(dāng)用戶點擊該區(qū)域時,底下的 TextInput 會獲得焦點。
  • 設(shè)置作為容器的 View[style=container] 的高度,這個高度就是數(shù)字單元格的寬高。使用 onLayout 回調(diào)來獲得容器的高度,用來設(shè)置數(shù)字單元格的寬高。
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 是一個字符數(shù)組,用于存放數(shù)字單元格的文本內(nèi)容,它的長度是固定的。它的內(nèi)容由用戶輸入的值拆分組成,如果長度不夠,則填充空字符串 ""。
export default function CodeInput({ value, length = 4 }) {
  const cells = value.split('').concat(Array(length - value.length).fill(''))
}

開源方案

GitHub 上這個庫實現(xiàn)了比較酷炫的效果。有需要的小伙伴可以使用。

這里有一個示例,供你參考。

以上就是React Native 中實現(xiàn)確認(rèn)碼組件示例詳解的詳細(xì)內(nèi)容,更多關(guān)于React Native確認(rèn)碼組件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 官方推薦react-navigation的具體使用詳解

    官方推薦react-navigation的具體使用詳解

    本篇文章主要介紹了官方推薦react-navigation的具體使用詳解,react-navigation是致力于解決導(dǎo)航卡頓,數(shù)據(jù)傳遞,Tabbar和navigator布局,支持redux。非常具有實用價值,需要的朋友可以參考下
    2018-05-05
  • React中實現(xiàn)插槽效果的方案詳解

    React中實現(xiàn)插槽效果的方案詳解

    在React中是沒有插槽的概念的, 或者說在React中是不需要插槽的, 因為React對于這種需要插槽的情況非常靈活,本文給大家分享兩種方案實現(xiàn),分別是children實現(xiàn)插槽和props實現(xiàn)插槽,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-09-09
  • react實現(xiàn)同頁面三級跳轉(zhuǎn)路由布局

    react實現(xiàn)同頁面三級跳轉(zhuǎn)路由布局

    這篇文章主要為大家詳細(xì)介紹了react實現(xiàn)同頁面三級跳轉(zhuǎn)路由布局,一個路由小案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • React中jquery引用的實現(xiàn)方法

    React中jquery引用的實現(xiàn)方法

    這篇文章主要介紹了React中jquery引用的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • react項目中使用react-dnd實現(xiàn)列表的拖拽排序功能

    react項目中使用react-dnd實現(xiàn)列表的拖拽排序功能

    這篇文章主要介紹了react項目中使用react-dnd實現(xiàn)列表的拖拽排序,本文結(jié)合實例代碼講解react-dnd是如何實現(xiàn),代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • react-redux中connect的裝飾器用法@connect詳解

    react-redux中connect的裝飾器用法@connect詳解

    這篇文章主要介紹了react-redux中connect的裝飾器用法@connect詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • React Hook中useState更新延遲問題及解決

    React Hook中useState更新延遲問題及解決

    這篇文章主要介紹了React Hook中useState更新延遲問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React實現(xiàn)一個拖拽排序組件的示例代碼

    React實現(xiàn)一個拖拽排序組件的示例代碼

    這篇文章主要給大家介紹了React實現(xiàn)一個拖拽排序組件?-?支持多行多列、支持TypeScript、支持Flip動畫、可自定義拖拽區(qū)域,文章通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • React+Spring實現(xiàn)跨域問題的完美解決方法

    React+Spring實現(xiàn)跨域問題的完美解決方法

    這篇文章主要介紹了React+Spring實現(xiàn)跨域問題的完美解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • React前端渲染優(yōu)化--父組件導(dǎo)致子組件重復(fù)渲染的問題

    React前端渲染優(yōu)化--父組件導(dǎo)致子組件重復(fù)渲染的問題

    本篇文章是針對父組件導(dǎo)致子組件重復(fù)渲染的優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論