/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict'; var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
Image,
View,
TextInput,
ListView,
} = React;
var GIT_URL = 'https://api.github.com/search/repositories?q='; var AwesonProject = React.createClass({
/*-- lifecycle --*/
getInitialState: function() {
return {
// (row1, row2) => row1 !== row2:如果两次的数据不同的话,告诉数据源该数据发生了改变
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
}),
};
},
render: function() {
var listViewContent;
if (this.state.dataSource.getRowCount() === 0) {
listViewContent =
<Text>
there's nothing to search , please have another key to tap.
</Text>;
} else {
listViewContent =
<ListView
ref='listview'
dataSource={this.state.dataSource}
renderRow={this.renderRow}
automaticallyAdjustConntentInsets={false}
keyboardShouldPersistTaps={true}
showsVerticalScrollIndicator={true} />
}
return (
<View style={styles.container}>
<TextInput
autoCapitalize='none'
autoCorrect={false}
placeholder='search forr git project...'
onEndEditing={this.onSearchChange}
style={styles.searchView}>
</TextInput>
{listViewContent}
</View>
);
}, /*-- private method --*/ //点击搜索响应数据请求
onSearchChange: function(event) {
var serarchText = event.nativeEvent.text.toLowerCase();
var queryURL = GIT_URL + encodeURIComponent(serarchText); fetch(queryURL)
.then((response) => response.json())
.then((responseData) => {
if (responseData.items) {
this.setState({
dataSource : this.state.dataSource.cloneWithRows(responseData.items)
});
}
})
.done();
}, //渲染列表中的每一行数据
renderRow: function(item) {
return (
<View>
<View style={styles.row}>
<Image
source={{uri:item.owner.avatar_url}}
style={styles.Img}>
</Image>
<View>
<Text style={styles.name}>
{item.full_name}
</Text>
<Text style={styles.name}>
Star:{item.stargazers_count}
</Text>
</View>
</View>
<View style={styles.cellBorder}></View>
</View>
);
}, }); /*布局样式*/
var styles = StyleSheet.create({
container: {
flex: 1,
// justifyContent: 'center',
// alignItems: 'center',
backgroundColor: '#F5FCFF',
},
searchView:{
marginTop:30,
padding:5,
margin:5,
fontSize:15,
height:30,
backgroundColor:'#EAEAEA'
},
row:{
flexDirection:'row',
padding:8,
},
name:{
marginBottom:8,
marginLeft:8,
},
Img:{
width:50,
height:50,
},
cellBorder:{
height:1,
marginLeft:2,
backgroundColor:'#EAEAEA',
}
}); AppRegistry.registerComponent('AwesonProject', () => AwesonProject);

React Native ——实现一个简单的抓取github上的项目数据列表的更多相关文章

  1. 使用git拉取github上的项目

    一. 安装Git 去Git官网,下载安装包,一路点next,默认安装. 安装之后,在空白处右键,菜单显示有 Git GUI Here 和 Git Bash Here ,表示Git安装成功. 二. 配置 ...

  2. C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现

    我们通过上一篇了解了爬虫具体要实现的工作之后,我们分析得出的网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出 ...

  3. 如何用 React Native 创建一个iOS APP?

    诚然,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 Reac ...

  4. 如何用 React Native 创建一个iOS APP?(三)

    前两部分,<如何用 React Native 创建一个iOS APP?>,<如何用 React Native 创建一个iOS APP (二)?>中,我们分别讲了用 React ...

  5. 如何用 React Native 创建一个iOS APP?(二)

    我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...

  6. React Native创建一个APP

    React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽 ...

  7. arpspoof+driftnet+ ARP欺骗简单图片抓取

    arpspoof+driftnet+ ARP欺骗简单图片抓取 driftnet是一款简单而使用的图片捕获工具,可以很方便的在网络数据包中抓取图片.该工具可以实时和离线捕获指定数据包中是图片 环境 受害 ...

  8. [python应用]python简单图片抓取

    前言 emmmm python简单图片抓取 1 import requests 2 import threading 3 import queue 4 from subprocess import P ...

  9. 抓取摩拜单车API数据,并做可视化分析

    抓取摩拜单车API数据,并做可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...

随机推荐

  1. Dynamic CRM 2013学习笔记(三十五)自定义审批流6 - 审批通过后,再审批 - 二次审批

    最近有个特殊的需求,客户想做二次审批,就是审批通过后,再走一次审批流程.最开始一想,这还不简单,审批通过后,直接把状态改成draft就完了,后来一试,发现一堆问题,比如第一次审批完后,界面是不允许修改 ...

  2. oracle数据库中varchar2陷阱

    oracle数据库相信大家都比较熟悉,数据库中有一种非常常用的数据类型:字符串型. 对应该类型,在oracle中有三种比较常用的类型:varchar2(byte).varchar2(char).nva ...

  3. Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

    Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...

  4. paip兼容windows与linux的java类根目录路径的方法

    paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...

  5. iOS开发-- 开发环境,证书和授权文件

    一.成员介绍 1.    Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1)    Developer Certification(开发证书)安装在电脑 ...

  6. 使用iMovie和Keynote制作App Preview

    App Preview是什么 App Preview就是一段15-30秒的短视频,用来展示你的应用的特性.用户界面.交互方式等内容.在App Store你的应用的详细信息页面里,放在原来的截图之前.体 ...

  7. hashcode详解

    序言 写这篇文章是因为在看hashMap源码时遇到有什么hashcode值,然后就去查,脑袋里面是有映像的,不就是在Object中有equals和hashcode方法嘛,这在学java基础的时候就遇到 ...

  8. android ormlite queryBuilder.where() 多条件

    QueryBuilder<VideoTagInfo, Integer> queryBuilder = videoTagInfoIntegerDao.queryBuilder();try { ...

  9. Correct use of System.Web.HttpResponse.Redirect

    from:https://blogs.msdn.microsoft.com/tmarq/2009/06/25/correct-use-of-system-web-httpresponse-redire ...

  10. [C] tcharall(让所有平台支持TCHAR)v1.1。源码托管到github、添加CMake编译配置文件、使用doxygen规范注释

    作者:zyl910 v1.1版的改动如下—— 将源码上传到github. 调整目录结构. 添加CMake编译配置文件. 使用doxygen规范注释. 文件清单—— docs\ docs\images\ ...