博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React-Native封装一些模块
阅读量:4086 次
发布时间:2019-05-25

本文共 4234 字,大约阅读时间需要 14 分钟。

存储

http://www.jianshu.com/p/f9965c6feceb

react-native-root-toast使用

/** *ToastUtil.js */import Toast from 'react-native-root-toast';let toast;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  });};export const toastLong = (content) => {  if (toast !== undefined) {    Toast.hide(toast);  }  toast = Toast.show(content.toString(), {    duration: Toast.durations.LONG,    position: Toast.positions.BOTTOM,    shadow: true,    animation: true,    hideOnPress: true,    delay: 0  });};
import { toastShort } from '../common/ToastUtil';  toastShort('已收藏');

存储

import React from 'react-native';const { AsyncStorage } = React;class DeviceStorage {  static get(key) {    return AsyncStorage.getItem(key).then((value) => {      const jsonValue = JSON.parse(value);      return jsonValue;    });  }  static save(key, value) {    return AsyncStorage.setItem(key, JSON.stringify(value));  }  static update(key, value) {    return DeviceStorage.get(key).then((item) => {      value = typeof value === 'string' ? value : Object.assign({}, item, value);      return AsyncStorage.setItem(key, JSON.stringify(value));    });  }  static delete(key) {    return AsyncStorage.removeItem(key);  }}export default DeviceStorage;

更新

import CodePush from 'react-native-code-push';  componentDidMount() {    CodePush.sync({      deploymentKey: 'lCYb0hSXQUEJHWiSykloC7wXu_19V1dAekTcW',      updateDialog: {        optionalIgnoreButtonLabel: '稍后',        optionalInstallButtonLabel: '后台更新',        optionalUpdateMessage: '“   ”有新版本了,是否更新?',        title: '更新提示',      },      installMode: CodePush.InstallMode.ON_NEXT_RESTART,    });  }

宽度高度

import {Dimensions} from 'react-native';let window = {    width: Dimensions.get('window').width,    height: Dimensions.get('window').height,}export default {    window: window,}

路由

import React, {    Component} from 'react'import {    Navigator,    Platform,    View} from 'react-native'import IndexView from '../Index/Index'export default class NavigatorComp extends Component {    render() {        return (            
) } _renderScene(route, navigator) { return
; } _configureScene(route, routeStack) { switch (route.type) { case 'floatFromBottom': return Navigator.SceneConfigs.FloatFromBottom default: return Navigator.SceneConfigs.PushFromRight } }}const styles = { container: { flexGrow: 1 }}

首页

import React, {Component} from 'react';import {    View,    BackAndroid,    ToastAndroid} from 'react-native';import Main from '../Main/Main';import NavbarComp from '../Navigator/navigator'export default class IndexView extends Component {    //注册Android环境物理返回监听事件    componentWillMount(){        BackAndroid.addEventListener('hardwareBackPress', this.onBackAndroid);    }    //解绑Android环境物理返回监听事件    componentWillUnmount() {        BackAndroid.removeEventListener('hardwareBackPress', this.onBackAndroid);    }    //Android物理返回键处理    onBackAndroid = () => {        const routers = this.props.navigator.getCurrentRoutes();        // 当前页面不为root页面时的处理        if (routers.length > 1) {            const top = routers[routers.length - 1];            if (top.ignoreBack || top.component.ignoreBack) {                // 路由或组件上决定这个界面忽略back键                return true;            }            const handleBack = top.handleBack || top.component.handleBack;            if (handleBack) {                // 路由或组件上决定这个界面自行处理back键                return handleBack();            }            // 默认行为: 退出当前界面。            navigator.pop();            return true;        }        if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {            //最近2秒内按过back键,可以退出应用。            return false;        }        this.lastBackPressed = Date.now();        ToastAndroid.show('再按一次退出应用', ToastAndroid.SHORT);        return true;    };    render() {        return (            
); }}

转载地址:http://fpeni.baihongyu.com/

你可能感兴趣的文章
可以买个好点的电烙铁
查看>>
ACfly调参记录(包括ACfly-F330和ACfly-T265)
查看>>
一定记得每飞几次或者隔一天要把螺丝和浆帽拧一次,确实会松的
查看>>
《多旋翼无人飞行器嵌入式飞控开发指南》里基于FreeRTOS的无人机软件框架
查看>>
思岚A1的SDK其实很好读懂,每个函数清晰明了,可以直接调用
查看>>
pixhawk(PX4)的一些论坛网站(包括中文版的PX4用户手册和PX4开发手册)
查看>>
串级 PID 为什么外环输出是内环的期望?(和我之前对串级PID的总结一样)
查看>>
我刚刚才完全清楚GPS模块的那根杆子是怎么固定安装好的
查看>>
去github里面找找也没有别人无人机+SLAM的工程
查看>>
PX4与ROS关系以及仿真控制(键盘控制无人机)
查看>>
我对无人机重心高度的理解
查看>>
现在明白为什么无名博客里好几篇文章在讲传感器的滞后
查看>>
实际我看Pixhawk定高模式其实也是飞得很稳,飘得也不厉害
查看>>
Pixhawk解锁常见错误
查看>>
C++的模板化等等的确实比C用起来方便多了
查看>>
ROS是不是可以理解成一个虚拟机,就是操作系统之上的操作系统
查看>>
用STL algorithm轻松解决几道算法面试题
查看>>
ACfly之所以不怕炸机因为它觉得某个传感器数据不安全就立马不用了
查看>>
我发觉,不管是弄ROS OPENCV T265二次开发 SDK开发 caffe PX4 都是用的C++
查看>>
ROS的安装(包含文字和视频教程,我的ROS安装教程以这篇为准)
查看>>