React-Native初体验五(window下引用第三方库:Toast)

在看这篇文章是居于reactNativeTest项目的,要是没有看过之前的文章请先看React-Native初体验四
下面介绍的第三方库是:react-native-root-toast
react-native-root-toast项目简介
Features:
Pure javascript solution.

Support both Android and iOS.

Lots of custom options for Toast.

You can show/hide Toast by calling api or using Component inside render.

1.安装第三方库
1.打开cmd进入到项目reactNativeTest的根路劲执行:

npm install react-native-root-toast

2.然后执行:

npm install

如下图:



3.重启package服务器:
打开新的cmd进入到项目reactNativeTest的根路劲执行

react-native start

4.安装成功后在根目录的node_modules文件夹下会多出两个modules

1.react-native-root-siblings

2.react-native-root-toast

如图:



2.使用第三方库
1.新建一个ToastUtil.js工具类:
2,引用react-native-root-toast库

import Toast from 'react-native-root-toast';

3.编写show方法:

/**
 * 冒一个时间比较短的Toast
 * @param content
 */
export const toastShort = (content) => {
  if (toast !== undefined) {
    Toast.hide(toast);
  }
  toast = Toast.show(content.toString(), {
    duration: Toast.durations.SHORT,
    position: Toast.positions.CENTER,
    shadow: true,
    animation: true,
    hideOnPress: true,
    delay: 0
  });
};

4.调用toastShort方法:

/**在组件中中导入Toast工具类*/
import { toastShort } from '../utils/ToastUtil';
 
 
//直接调用
toastShort('登录成功');

3.案例演示
是在React-Native初体验四的基础上演示,添加登录的业务逻辑
1.执行效果:


2.当前项目的结构:
[图片上传中。。。(2)]
3.首页AppMain.js跳转到登录界面Login.js:

  //1.添加点击事件onClickPage
  <View style={styles.page}>
         <TouchableOpacity onPress={()=>{this.onClickPage(1)}}>
                    <Text>Page 1:点击跳转到登录界面</Text>
         </TouchableOpacity>
  </View>
   //2.处理点击事件onClickPage
     /**
     * 点击了page
     * @param page
     */
    onClickPage(page){
        if(page==1){
            //3.跳转到登录界面
            InteractionManager.runAfterInteractions(() => {
                _navigator.resetTo({
                    component: Login,
                    name: 'Login'
                });
            });
        }else if(page==2){
        }else if(page==3){
        }
    }

4.登录界面Login.js业务逻辑:

//添加点击事件btn_login
<TouchableOpacity onPress={() => {this.btn_login()}}
            >
     <View style={styles.btn_login}>
         <Text style={{color:'white',fontSize:18}}>登录</Text>
      </View>
 </TouchableOpacity>
//2.处理点击事件btn_login
/**
 * 点击登录
 */
btn_login(){
    //用户登录
    if(username === ''){
        toastShort('用户名不能为空...');
        return;
    }
    if(password === ''){
        toastShort('密码不能为空...');
        return;
    }
    if(username=='liujun' && password=='123'){
        toastShort('登录成功');
        username='';
        password='';
        //跳转到首页
        InteractionManager.runAfterInteractions(() => {
            navigator.resetTo({
                component: AppMain,
                name: 'AppMain'
            });
        });
    }else{
        toastShort('用户名或密码错误');
        return;
    }
}

5.新建一个ToastUtils.js

import Toast from 'react-native-root-toast';
let toast;
/**
 * 冒一个时间比较短的Toast
 * @param content
 */
export const toastShort = (content) => {
  if (toast !== undefined) {
    Toast.hide(toast);
  }
  toast = Toast.show(content.toString(), {
    duration: Toast.durations.SHORT,
    position: Toast.positions.CENTER,
    shadow: true,
    animation: true,
    hideOnPress: true,
    delay: 0
  });
};
  /**
   * 冒一个时间比较久的Toast
   * @param content
   */
  export const toastLong = (content) => {
    if (toast !== undefined) {
      Toast.hide(toast);
    }
    toast = Toast.show(content.toString(), {
      duration: Toast.durations.LONG,
      position: Toast.positions.CENTER,
      shadow: true,
      animation: true,
      hideOnPress: true,
      delay: 0
    });
  };

6.在Login.js中使用第三方的库(react-native-root-toast):

'use strict';
import React, { Component } from 'react';
import{
    View,
    Text,
    BackAndroid,
    TouchableOpacity,
    Image,
    TextInput,
    InteractionManager,
    StyleSheet,
} from 'react-native';
/**导入使用第三方的库,ToastUtil工具类*/
import { toastShort } from '../utils/ToastUtil';
...
class Login extends Component {
    constructor(props) {
        super(props);
       ....
    }
    .....
    /**
     * 点击登录
     */
    btn_login(){
        //用户登录
        if(username === ''){
            //使用第三方的库
            toastShort('用户名不能为空...');
            return;
        }
        if(password === ''){
            //使用第三方的库
            toastShort('密码不能为空...');
            return;
        }
        if(username=='liujun' && password=='123'){
            toastShort('登录成功');
            ////跳转到首页
            .....
        }else{
            toastShort('用户名或密码错误');
            return;
        }
    }
    .....
    .....

7.完整的代码请到reactNativeTest项目下载

来源:
http://bbs.520it.com/forum.php?mod=viewthread&tid=2311&extra=page%3D1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,907评论 25 707
  • 简短说明 收录一些好用的RN第三方组件,以方便日常的使用,大家有什么推荐的也可以跟我说,我加进去。如有冒犯,可以联...
    以德扶人阅读 43,626评论 44 214
  • 一、简述 安全是恒久的话题,如果不注意防范,会带来很严重的后果。比如: 1.接口被大规模调用消耗系统资源,影响系统...
    8a0b9df8a2dd阅读 18,819评论 20 113
  • 董沛沛 洛阳 焦点网络初级五期 坚持原创分享第九十六天 今天微信群里一位家长问问题,我正好在,一激动,就发生了...
    缘源流长阅读 113评论 0 1
  • 悬崖峭壁太行山, 姐弟攀岩不怕难。 无字之书常体验, 琴心剑胆胜于蓝。
    耆女阅读 290评论 1 1