91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React?Native中如何實現確認碼組件

發布時間:2022-08-09 09:23:14 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

本篇內容主要講解“React Native中如何實現確認碼組件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“React Native中如何實現確認碼組件”吧!

正文

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

React?Native中如何實現確認碼組件

實現原理

上圖 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 的實現原理了。

需要注意以下幾個點:

  • 設置 TextInputautoFocus 屬性,控制進入頁面時是否自動彈出鍵盤。

  • 設置作為覆蓋物的 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(''))
}

到此,相信大家對“React Native中如何實現確認碼組件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深水埗区| 东光县| 井陉县| 甘孜| 青冈县| 洛川县| 庆阳市| 永兴县| 平江县| 临汾市| 龙门县| 那曲县| 铁力市| 拉萨市| 米林县| 湟源县| 同江市| 灌云县| 密云县| 焦作市| 盐边县| 苏尼特左旗| 仁怀市| 嘉义县| 仙游县| 贵州省| 翁源县| 南雄市| 南澳县| 平昌县| 株洲市| 鲁甸县| 南丹县| 吉隆县| 苏州市| 永吉县| 铜山县| 灌云县| 保靖县| 普定县| 伊川县|