亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

ReactNative短信驗證碼倒計時控件的實現代碼

2019-11-19 16:02:12
字體:
來源:轉載
供稿:網友

由于最近剛開始認真的搞RN,可能有一些封裝的不是最佳實踐,還是希望大家多提意見,和大家一起進步吧。本文介紹了ReactNative短信驗證碼倒計時控件,分享給大家

功能

根據項目的需要,需要寫一個自定義的控件,實現如下功能:

  1. 默認文字為點擊獲取驗證碼
  2. 點擊后出現60秒的倒計時
  3. 顏色,字號可調
  4. 倒計時過程中,再次點擊需要忽略掉
  5. 倒計時完成后文本恢復成點擊獲取驗證碼
  6. 再幾次點擊同之前

其實說了這么多,就是個最普通的驗證碼的功能。。。

效果

效果圖如下:(錄的圖片比較一般,對付著看吧)

實現原理

自己封裝了個控件,它內部含有一個Text控件,然后我們又寫了一個timer,然后負責倒計時,然后每次都需要判斷一下是否繼續,然后加了一個flag字段,判斷是否接受下次點擊事件,當倒計時結束之后還需要將初始狀態重置回去即可。

代碼

控件代碼

import React, {Component } from 'react';import {  StyleSheet,  Text,  View,  Image,  TextInput,  TouchableHighlight,  StatusBar,  Alert,  AppRegistry} from 'react-native';import LinkRow from '../components/LinkRow';import cStyles from '../styles/CommonStyle';import axios from 'axios';class MyCountTime extends Component {  constructor(props) {    super(props);    let timeLeft = this.props.timeLeft > 0 ? this.props.timeLeft : 5;    let width = this.props.width || 100;    let height = this.props.height || 50;    let color = this.props.color || '#42A5F5';    let fontSize = this.props.fontSize || 30;    let fontWeight = this.props.fontWeight || '600';    let borderColor = this.props.borderColor || '#42A5F5';    let borderWidth = this.props.borderWidth || 1;    let borderRadius = this.props.borderRadius || 4;    let backgroundColor = this.props.backgroundColor || '#42A5F5';    let begin = 0;    let press = this.props.press;    this.afterEnd = this.props.afterEnd || this._afterEnd;    this.style = this.props.style;    this.state = {      timeLeft: timeLeft,      begin: begin    };    this.countTextStyle = {      textAlign: 'center',      color: '#42A5F5',      fontSize: fontSize,      fontWeight: fontWeight    };    this.countViewStyle = {      backgroundColor: backgroundColor,      alignItems: 'center',      borderColor: borderColor,      borderWidth: borderWidth,      borderRadius: borderRadius,      width: width,      height: height    }  }  countdownfn(timeLeft, callback, begin) {    if (timeLeft > 0) {      this.state.begin = 1;      console.log("===lin===>");      let that = this;      let interval = setInterval(function () {        if (that.state.timeLeft < 1) {          clearInterval(interval);          callback(that)        } else {          let totalTime = that.state.timeLeft;          that.setState({            timeLeft: totalTime - 1          })        }      }, 1000)    }  }  _beginCountDown() {    if (this.state.begin === 1){      return;    }    let time = this.state.timeLeft;    console.log("===lin===> time " + time);    let afterEnd = this.afterEnd;    let begin = this.state.begin;    console.log("===lin===> start " + begin);    this.countdownfn(time, afterEnd, begin)  }  _afterEnd(that) {    console.log('------------time over');    that.setState({      begin : 0,      timeLeft : 5,    })  }  componentDidMount() {  }  render() {    return (      <View style={{position:'absolute',top:13,right:43,height:30}}>        <Text          onPress={this._beginCountDown.bind(this)}          style={{color: '#42A5F5', fontSize: 17,height:40 , zIndex:999}}> { this.state.begin === 0 ? '點擊獲取驗證碼' : this.state.timeLeft} </Text>      </View>    )  }}

應用代碼

<MyCountTime timeLeft={5}></MyCountTime>

當然這只是,最簡單的應用的代碼,我們還提供了很多的自定義的屬性,大家可以根據自己項目的需要,去調節這些參數。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲福利在线观看| 欧洲亚洲妇女av| 日韩欧美国产一区二区| 成人精品一区二区三区电影免费| 欧美激情免费在线| 伊人久久综合97精品| 中文字幕亚洲欧美| 狠狠躁夜夜躁人人爽天天天天97| 91视频国产高清| 456国产精品| 国产精品v日韩精品| 日本人成精品视频在线| 上原亚衣av一区二区三区| 4p变态网欧美系列| 亚洲最大在线视频| 久久99热精品| 日韩视频―中文字幕| 国产精品久久久久久久app| 亚洲美腿欧美激情另类| 久久久久久久久久国产| 日本一区二区在线免费播放| 亚洲欧美变态国产另类| 亚洲欧美国产精品专区久久| 欧美激情一区二区三区在线视频观看| 少妇高潮久久久久久潘金莲| 51久久精品夜色国产麻豆| 在线看片第一页欧美| 欧美一级成年大片在线观看| 91精品国产高清久久久久久| 98午夜经典影视| 日韩亚洲国产中文字幕| 亚洲国产精品视频在线观看| 国产在线999| 一个人看的www久久| 57pao国产精品一区| 精品色蜜蜜精品视频在线观看| 欧美国产日韩在线| 久久精品99久久久久久久久| 国产精品欧美亚洲777777| 亚洲激情 国产| 欧美精品在线免费观看| 中文字幕久精品免费视频| 亚洲xxxxx性| 亚洲www永久成人夜色| 国产精品国产自产拍高清av水多| 中文国产亚洲喷潮| 日韩大陆欧美高清视频区| 在线日韩第一页| 国产午夜精品麻豆| 性日韩欧美在线视频| 欧美日韩亚洲精品内裤| 亚洲欧美日韩一区在线| 久久成人综合视频| 色综久久综合桃花网| 91免费高清视频| 亚洲综合精品一区二区| 欧美极品美女电影一区| 国产亚洲欧洲高清| 国产欧美一区二区三区四区| 日韩成人在线视频网站| 成人激情视频网| 成人精品久久av网站| 欧美精品第一页在线播放| 久久久www成人免费精品| 国产精品视频永久免费播放| 清纯唯美亚洲激情| 国产在线拍揄自揄视频不卡99| www.色综合| 久久久亚洲欧洲日产国码aⅴ| 欧美精品在线免费| 岛国av一区二区| 中国日韩欧美久久久久久久久| 一级做a爰片久久毛片美女图片| 国产一区二区三区三区在线观看| 欧美一区二区三区四区在线| 美女999久久久精品视频| 亚洲大胆人体视频| 91精品国产色综合久久不卡98口| 欧美成人国产va精品日本一级| 欧美在线免费看| 亚洲free性xxxx护士白浆| 亚洲欧洲日产国码av系列天堂| 91sao在线观看国产| 成人午夜在线视频一区| 日韩精品在线播放| 精品国产91乱高清在线观看| 亚洲黄色在线看| 日韩精品免费在线视频观看| 91国产在线精品| 欧美另类暴力丝袜| 国产精品丝袜视频| 亚洲天堂av在线免费| 98午夜经典影视| 久久九九精品99国产精品| 久久久精品视频在线观看| 亚洲成人在线视频播放| 欧美精品制服第一页| 国产精品第一第二| 亚洲高清色综合| 国产精品电影网站| 日韩av在线免费看| 亚洲淫片在线视频| 91精品美女在线| 亚洲综合日韩中文字幕v在线| 精品在线欧美视频| 欧美激情视频播放| 国产欧美一区二区三区四区| 欧美成人合集magnet| 国产精品久久久久久av下载红粉| 在线观看国产精品日韩av| 国语自产精品视频在线看抢先版图片| 亚洲性视频网站| 亚洲色图15p| 久久久噜噜噜久久| 国产成人精品视频在线观看| 亚洲黄色有码视频| 国产亚洲一区二区在线| 日韩电影在线观看永久视频免费网站| 97香蕉久久超级碰碰高清版| 国产精品国产三级国产专播精品人| 亚洲欧美日韩第一区| 91欧美日韩一区| 中文在线不卡视频| 日韩视频第一页| 97超级碰在线看视频免费在线看| 国产精品视频网站| 夜夜嗨av一区二区三区四区| 亚洲精品福利视频| 国产99视频精品免视看7| 欧美劲爆第一页| 日韩欧美在线免费| 日韩精品日韩在线观看| 亚洲第一免费网站| 欧美一区二区影院| 精品久久久久久久久久ntr影视| 日韩av三级在线观看| 欧美一区二粉嫩精品国产一线天| 欧美日韩一区二区三区在线免费观看| 91超碰caoporn97人人| 91视频国产高清| 亚洲男人av电影| 久久久精品在线观看| 97人人做人人爱| 亚洲精品资源美女情侣酒店| 日韩欧美亚洲范冰冰与中字| 国产91精品久久久| 欧美日韩国产一区二区三区| 亲子乱一区二区三区电影| 夜夜嗨av一区二区三区四区| 亚洲欧美综合图区| 日韩小视频在线| 久久国产精品免费视频| 日韩在线观看免费全| 国产脚交av在线一区二区| 久久精品99久久香蕉国产色戒| 欧美午夜无遮挡| 亚洲国产一区二区三区在线观看| 日韩欧美在线字幕| 久久久久久久久久久网站| 国产69精品久久久久9999| 欧美日韩福利视频| 欧美亚洲日本黄色| 久久激情五月丁香伊人| 日韩av在线网址|