上拉刷新下拉加载

import React, { Component } from "react";
import { View, Text, Image, FlatList, TouchableHighlight } from "react-native";

export default class Demo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      data: [],
      page: 1,
      tab: this.props.tab,
      refreshed: false
    };
  }
  //   https://cnodejs.org/api/v1/topics?page=1&tab=job&limit=15
  componentDidMount() {
    this.getFirst();
  }
  getFirst = () => {
    let api =
      "https://cnodejs.org/api/v1/topics?page=" +
      this.state.page +
      "&tab=job&limit=20";
    fetch(api)
      .then(response => response.json())
      .then(responseJson => {
        this.setState({
          data: responseJson.data
        });
      })
      .catch(error => {
        alert(error);
      });
  };
  getNext = () => {
    this.setState({
      page: this.state.page + 1
    });

    let api =
      "https://cnodejs.org/api/v1/topics?page=" +
      this.state.page +
      "&tab=job&limit=20";
    fetch(api)
      .then(response => response.json())
      .then(responseJson => {
        this.setState({
          data: [...this.state.data, ...responseJson.data]
        });
      })
      .catch(error => {
        alert(error);
      });
  };
  render() {
    return (
      <FlatList
        data={this.state.data}
        renderItem={({ item }) => {
          return (
            <TouchableHighlight
              onPress={() => {
                this.props.navigation.navigate("Detils", { name: item });
              }}
            >
              <View style={{ borderBottomColor: "#ddd", borderBottomWidth: 1 }}>
                <Text style={{ fontSize: 20 }}>{item.title}</Text>
              </View>
            </TouchableHighlight>
          );
        }}
        refreshing={this.state.refreshed}
        onRefresh={this.getFirst}
        onEndReached={this.getNext}
        onEndReachedThreshold={0.0001}
      />
    );
  }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值