//3个主界面的listview 'use strict'; import React, { AppRegistry, Component, StyleSheet, ListView, Text, View, Image, TouchableOpacity, AlertIOS, RefreshControl, ActivityIndicatorIOS } from 'react-native'; import MyListView from './MyListView' var isPromise = require('is-promise') var REQUEST_URL = 'http://127.0.0.1:3000/users/list'; export default class MyListViewDemo extends Component{ //初始化。 constructor(props) { super(props); this.state = { dataSource: new ListView.DataSource({ rowHasChanged: (row1, row2) => row1 !== row2, }), }; } componentDidMount(){ this.props.navComponent.setNavItems({ title: { component: ( 随机 ) } }) } onRefresh(){ this.myfetchData(); } //数据查询. fetchData(){ var page = Math.random() * 1000; page = Math.floor(page); var url = REQUEST_URL + '?page=' + page; return new Promise((resolve, reject)=>{ fetch(url) .then((response) => response.json()) .catch((error) => { reject(error); }) .then((responseData) => { if(responseData){ this.setState({ dataSource: this.state.dataSource.cloneWithRows(responseData.datas), }); resolve(responseData.datas); }else{ reject('none'); } }) .done(); }) } render(){ return ( ); } } const styles = StyleSheet.create({ container: { flex:2, flexDirection: 'column', justifyContent: 'center', alignItems: 'center', backgroundColor: 'White', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, }, title: { fontSize: 15, marginBottom: 8, marginTop: 10, marginLeft: 4, marginRight: 4, textAlign: 'left', }, year: { textAlign: 'center', }, rightContainer: { flex: 1, }, topContainer:{ flex:1, height : 30, backgroundColor: 'LightGray', }, thumbnail: { width: 400, height: 200, }, listView: { paddingTop: 0, marginBottom: 44, backgroundColor: 'LightGray', }, navItem: { flex: 1, justifyContent: 'center', alignItems: 'center' }, // top{ // height:60, // flex: 1, // }, }); module.exports = MyListViewDemo;