全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

react native中的聊天气泡及timer封装成的发送验证码倒计时

其实,今天我想把我近期遇到的坑都总结一下:

1.goBack的跨页面跳转,又两种方法,一可以像兔哥那样修改navigation源码,二可以用navigationActions    

2.父子组件的传值,一可以用callBack  二可以用pubsub发布订阅模式 三可以用manager事件监听(a页面要显示的内容 有两种形式,一是从manager主动接收,也就是说不需要点击什么的获取数据,而是时时监听manager里数据的变化,第二种a页面获取要显示内容的形式是 点击出发,获取)

3 需要说的还是navigation 在navigationOption是一个stack静态变量,里面不能出现this,所以就会出现一个问题 ,比如说navigationOption里的的headerRight里放一个添加按钮,点击添加按钮要推出一个新的页面,以前通用的方法是pubsub发布订阅,而兔子说用setParams,不过都能达到相应的功能,只是优劣的问题。还有就是navigation的动画问题,开发种遇到许多问题,自己的成长过程从expo练习demo,到用官网推荐混合开发。一路走来感受颇多,不过还是挺怀念以前做网站时的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封装 发送验证码倒计时

日常工作中,倒计时组件是少不了的。目前了解的很多倒计时组件会在应用进入后台时,计时停止或者错乱。下面,我们就来实现一个可用,高交互的例子。

1-:支持倒计时结束时,执行回调,并重新开始计时;

下面开始给出源码首先封装一个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; } }

在用到的地方调用

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, }); //回调,当使用组件时,可用传入回调事件 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, } })

代码效果如下

//回调事件
againTime=()=>{
alert("againTime");
}
//倒计时结束时,可以使用此回调再次开始计时,并执行某些时间
<TimeMsg onPress={ this.againTime }/>

总结

以上所述是小编给大家介绍的react native中的聊天气泡及timer封装成的发送验证码倒计时,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# react  # native  # 气泡  # timer  # 验证码倒计时  # react的滑动图片验证码组件的示例代码  # React Native验证码倒计时工具类分享  # ReactNative短信验证码倒计时控件的实现代码  # React-Native中使用验证码倒计时的按钮实例代码  # React tsx生成随机验证码  # 倒计时  # 可以用  # 回调  # 验证码  # 结束时  # 小编  # 自己的  # 是一个  # 我想  # 就会  # 好了  # 在此  # 不需要  # 都能  # 把我  # 两种  # 会在  # 是从  # 给大家  # 那时候 


相关文章: Swift中switch语句区间和元组模式匹配  建站之星后台管理:高效配置与模板优化提升用户体验  c++ stringstream用法详解_c++字符串与数字转换利器  如何快速启动建站代理加盟业务?  html制作网站的步骤有哪些,iapp如何添加网页?  网站制作新手教程,新手建设一个网站需要注意些什么?  如何制作网站标识牌,动态网站如何制作(教程)?  建站之星伪静态规则如何设置?  建站VPS配置与SEO优化指南:关键词排名提升策略  自助网站制作软件,个人如何自助建网站?  建站之星×万网:智能建站系统+自助建站平台一键生成  宝塔新建站点报错如何解决?  网站制作需要会哪些技术,建立一个网站要花费多少?  Android使用GridView实现日历的简单功能  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  如何实现建站之星域名转发设置?  Python lxml的etree和ElementTree有什么区别  寿县云建站:智能SEO优化与多行业模板快速上线指南  C#怎么使用委托和事件 C# delegate与event编程方法  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  建站之星导航配置指南:自助建站与SEO优化全解析  c# 在高并发场景下,委托和接口调用的性能对比  如何将凡科建站内容保存为本地文件?  ,交易猫的商品怎么发布到网站上去?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何选择美橙互联多站合一建站方案?  移民网站制作流程,怎么看加拿大移民官网?  公众号网站制作网页,微信公众号怎么制作?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  建站主机如何选?性能与价格怎样平衡?  存储型VPS适合搭建中小型网站吗?  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何解决VPS建站LNMP环境配置常见问题?  如何在IIS7上新建站点并设置安全权限?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  济南网站建设制作公司,室内设计网站一般都有哪些功能?  建站DNS解析失败?如何正确配置域名服务器?  清除minerd进程的简单方法  建站之星安装需要哪些步骤及注意事项?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何选择高效可靠的多用户建站源码资源?  定制建站如何定义?其核心优势是什么?  C#怎么创建控制台应用 C# Console App项目创建方法  建站主机选购指南与交易推荐:核心配置解析  ,如何利用word制作宣传手册?  制作旅游网站html,怎样注册旅游网站?  建站之星备案流程有哪些注意事项? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。