博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RN笔记-项目教程与源码分享
阅读量:4086 次
发布时间:2019-05-25

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

此文适合react-native新手学习使用,侧重点在于Fetch网络请求、ListView数据源配置及展示。

项目中使用豆瓣网提供的开放数据接口

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

Util工具类封装

Util工具类封装了获取设备屏幕宽高、网络请求成功或者失败回调函数、数据请求成功前的等待效果.

/*工具类*/import React, { Component} from 'react';import {  AppRegistry,  StyleSheet,  Text,  View,  Dimensions, //用于获取设备屏幕的宽高  ActivityIndicator} from 'react-native';var Util = {  //屏幕尺寸  windowSize: {    width: Dimensions.get("window").width,    height:Dimensions.get("window").height  },  getRequest: function(url,successCallback, failCallback) {    fetch(url)    .then((response) => response.json())    .then((responseData) => successCallback(responseData))    .catch((error) => failCallback(error));  },// loading效果  loading:
}module.exports = Util;

数据请求部分

getData: function() {    this.setState({      show: false    });    // 请求数据    var that = this;    //https://api.douban.com/v2/book/search?count=20&q=react    var url = ServiceURL.book_search + "?count=20&q=" + this.state.keywords;    Util.getRequest(url,function(data){      // 请求成功回调      if (!data.books || data.books.length == 0) {        return alert("未查询到相关书籍")      }      var ds = new ListView.DataSource({        rowHasChanged: (oldRow, newRow) => oldRow!==newRow      });      that.setState({        show: true,        dataSource: ds.cloneWithRows(data.books)      });    }, function(error){      // 请求失败回调      alert(error);    })  },

教程来源

百度授课react-native零基础入门到项目实战:

Demo下载地址

GitHub下载地址:

附效果图


Fetch请求效果图.gif

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

你可能感兴趣的文章
nvm 和 nrm 的安装与使用
查看>>
React Hooks 一步到位
查看>>
React Redux常见问题总结
查看>>
前端 DSL 实践指南
查看>>
ReactNative: 自定义ReactNative API组件
查看>>
cookie
查看>>
总结vue知识体系之实用技巧
查看>>
PM2 入门
查看>>
掌握 TS 这些工具类型,让你开发事半功倍
查看>>
前端如何搭建一个成熟的脚手架
查看>>
Flutter ListView如何添加HeaderView和FooterView
查看>>
Flutter key
查看>>
Flutter 组件通信(父子、兄弟)
查看>>
Flutter Animation动画
查看>>
Flutter 全局监听路由堆栈变化
查看>>
Android 混合Flutter之产物集成方式
查看>>
Flutter混合开发二-FlutterBoost使用介绍
查看>>
Flutter 混合开发框架模式探索
查看>>
Flutter 核心原理与混合开发模式
查看>>
Flutter Boost的router管理
查看>>