RN笔记-项目教程与源码分享

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

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

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:<ActivityIndicator style={{marginTop: 200}}/>
}

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零基础入门到项目实战:http://www.chuanke.com/v4702151-196697-1141970.html

Demo下载地址

GitHub下载地址:https://github.com/dangxiaoyin/react-native-douban

附效果图

Fetch请求效果图.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,192评论 25 709
  • “真的想要在小森林生活下去,接受一切,并且认真对待,所以小森的爷爷奶奶们才会打心底里享受着生活。” ▼ 冬天一结束...
    食者说阅读 3,725评论 0 0
  • 三十六天罡,真没有几个得了善终,却是位居其末的燕青“消遥法外”。 燕青号为“浪子”,也是最洒脱的一位好汉,...
    颓然书生阅读 3,110评论 12 19
  • 林国斌这个名字可能不太熟悉,说道断水流大师兄的话大家肯定印象深刻。和天王黎明傻傻分不清,塑造的角色大都是反派和伪君...
    电影聚焦阅读 5,502评论 0 1
  • Git 简介 Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就...
    贺贺v5阅读 3,831评论 0 0

友情链接更多精彩内容