react native中的聊天氣泡及timer封裝成的發(fā)送驗證碼倒計時
其實,今天我想把我近期遇到的坑都總結(jié)一下:
1.goBack的跨頁面跳轉(zhuǎn),又兩種方法,一可以像兔哥那樣修改navigation源碼,二可以用navigationActions
2.父子組件的傳值,一可以用callBack 二可以用pubsub發(fā)布訂閱模式 三可以用manager事件監(jiān)聽(a頁面要顯示的內(nèi)容 有兩種形式,一是從manager主動接收,也就是說不需要點擊什么的獲取數(shù)據(jù),而是時時監(jiān)聽manager里數(shù)據(jù)的變化,第二種a頁面獲取要顯示內(nèi)容的形式是 點擊出發(fā),獲取)
3 需要說的還是navigation 在navigationOption是一個stack靜態(tài)變量,里面不能出現(xiàn)this,所以就會出現(xiàn)一個問題 ,比如說navigationOption里的的headerRight里放一個添加按鈕,點擊添加按鈕要推出一個新的頁面,以前通用的方法是pubsub發(fā)布訂閱,而兔子說用setParams,不過都能達到相應的功能,只是優(yōu)劣的問題。還有就是navigation的動畫問題,開發(fā)種遇到許多問題,自己的成長過程從expo練習demo,到用官網(wǎng)推薦混合開發(fā)。一路走來感受頗多,不過還是挺懷念以前做網(wǎng)站時的coding,為什么呢?那時候比較年輕吧!
好了說一下聊天冒泡氣泡的布局
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View } from 'react-native'; export default class MsgPopPage extends Component { render() { return ( <View style={styles.container}> <Text style={styles.msg}>Hello MSG</Text> <View style={styles.triangle}> </View> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, flexDirection: 'row', justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, msg: { fontSize: 20, textAlign: 'center', padding: 10, backgroundColor: 'chartreuse', borderRadius: 8, }, triangle: { width: 0, height: 0, backgroundColor: 'transparent', borderStyle: 'solid', borderLeftWidth: 30, borderRightWidth: 30, borderBottomWidth: 8, borderTopWidth: 8, borderLeftColor: 'chartreuse', borderRightColor: 'transparent', borderTopColor: 'transparent', borderBottomColor: 'transparent', }, });
代碼運行效果:
timer封裝 發(fā)送驗證碼倒計時
日常工作中,倒計時組件是少不了的。目前了解的很多倒計時組件會在應用進入后臺時,計時停止或者錯亂。下面,我們就來實現(xiàn)一個可用,高交互的例子。
1-:支持倒計時結(jié)束時,執(zhí)行回調(diào),并重新開始計時;
下面開始給出源碼首先封裝一個timer的組件
代碼如下
import React, {Component} from 'react'; export default class Timer extends Component { componentWillMount() { const {interval} = this.props; this.timer = setInterval(this.onEvent, interval); } componentWillReceiveProps(newProps) { if (newProps.interval !== this.props.interval) { clearInterval(this.timer); this.timer = setInterval(this.onEvent, newProps.interval); } } componentWillUnmount() { clearInterval(this.timer); } onEvent = ev => { const { onTimer } = this.props; onTimer(ev); }; render(){ return this.props.children || null; } }
在用到的地方調(diào)用
import React from 'react'; import { Text, View, StyleSheet, Alert,
}
from 'react-native'; import Timer from './Timer' export default class TimeMsg extends React.Component { constructor(props){ super(props); this.state={ count:10, isFinish:false, } } onTimer = () => { if(this.state.count>0){ this.setState({count: this.state.count - 1}); }else { this.setState({isFinish:true}); } }; againTime=()=>{ if(this.state.isFinish){ this.setState({ count:10, isFinish:false, }); //回調(diào),當使用組件時,可用傳入回調(diào)事件 if(this.props.onPress){ this.props.onPress(); } } } render() { let mainView=this.state.count!=0? <Text style={styles.textMsg}>剩余{this.state.count}s</Text>: <Text style={styles.textMsg} onPress={this.againTime}>重新獲取</Text> return ( <View style={styles.container}> <View style={styles.mainView}> <Timer interval={1000} onTimer={this.onTimer}/> {mainView} </View> </View> ); } } const styles=StyleSheet.create({ container:{ backgroundColor:'#4a4a4a', }, textMsg:{ fontSize:16, }, mainView:{ height: 44, padding: 12, } })
代碼效果如下
//回調(diào)事件
againTime=()=>{
alert("againTime");
}
//倒計時結(jié)束時,可以使用此回調(diào)再次開始計時,并執(zhí)行某些時間
<TimeMsg onPress={ this.againTime }/>
總結(jié)
以上所述是小編給大家介紹的react native中的聊天氣泡及timer封裝成的發(fā)送驗證碼倒計時,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android利用EditText如何實現(xiàn)搜索框詳解
EditText 在開發(fā)中也是經(jīng)常用到的控件,也是一個比較必要的組件,下面這篇文章主要給大家介紹了關(guān)于Android利用EditText如何實現(xiàn)搜索框的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2018-07-07
Android M(6.x)使用OkHttp包解析和發(fā)送JSON請求的教程
Android 6.0采用的SPDY支持HTTP上GZIP壓縮的傳輸,這使得OkHttp包的功能能夠進一步被利用,本文我們來總結(jié)一下Android M(6.0)使用OkHttp包解析和發(fā)送JSON請求的教程2016-07-07
android 手機SD卡讀寫操作(以txt文本為例)實現(xiàn)步驟
要完成SD卡讀寫操作首先對manifest注冊SD卡讀寫權(quán)限其次是創(chuàng)建一個對SD卡中文件讀寫的類寫一個用于檢測讀寫功能的的布局然后就是UI的類了,感興趣的朋友可以參考下,希望可以幫助到你2013-02-02
android 獲取手機內(nèi)存及 內(nèi)存可用空間的方法
下面小編就為大家?guī)硪黄猘ndroid 獲取手機內(nèi)存及SD卡內(nèi)存可用空間的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
Android實現(xiàn)多個連續(xù)帶數(shù)字圓圈效果
這篇文章主要為大家詳細介紹了Android實現(xiàn)多個連續(xù)帶數(shù)字圓圈效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07

