React实现新闻的列表展示

345 阅读1分钟

本文主要实现开源新闻接口获取数据展示到页面上的过程

1.使用新闻接口 2.列表展示 3.页按钮实现

import React, { Component } from "react";

export default class App extends Component {
  // 变动数据 同时渲染DOM 存储在state
  // page当前页 默认第一页 接口没有返回页数 本地维护一个
  state = { data: null,page:1};
  // 组件挂在时触发
  componentDidMount() {
    // 发送网络请求
    this.getData();
  }
  getData(page=1) {
    const url = "https://api.apiopen.top/getWangYiNews?page="+page;
    fetch(url)
      .then((res) => res.json())
      .then((res) => {
        console.log(res);
        // 请求后,设置存储当前页码到本地
        this.setState({ data: res.result,page:page });
        // 打印看一下
        // console.log(this.state.data);
      });
  }
  show = () =>
    this.state.data.map((item, index) => (
      <div key={index}>
        <img src={item.image} />
        <div>{item.title}</div>
        <div>{item.passtime}</div>
      </div>
    ));
  render() {
    if (this.state.data === null) return <div></div>;
    return (
      <div>
        {/* 翻页按钮 */}
        <button disabled={this.state.page==1} onClick={this.getData.bind(this,this.state.page-1)}>上一页</button>
        第{this.state.page}页
        <button onClick={this.getData.bind(this,this.state.page+1)}>下一页</button>
        {/* 做展示 */}
        {this.show()}
      </div>
    );
  }
}