zoukankan      html  css  js  c++  java
  • react redux里请求数据,使用antd表格加分页功能

    首先,我们要保证我们的redux已经正常配置好了。

    第一步。在actions文件夹里定义了一个方法。

    export getLimitData = option => {
      return {
        type: 'GET_LIMIT_DATA',
        payload: post(api.limitData, option)    
        //这里payload属性值 是我封装好了的axios, 这个option是页面传过来的数据
      }
    }
    

      

    第二步: 在reducer文件夹里写入

    const defaultState = {
      data: [],    //定义一个空数组
       count:1     //这个count是总条数,因为我用了别人的接口,名字方面就别那么在意。
    }
    
    export default function (state = defaultState, action) {
      switch (action.type) {
        case 'GET_LIMIT_DATA':
          return {
            ...state,
            data: action.payload.result.list,
            count: +action.payload.result.count
          }
    
        default:
          return state;
      }
    }
    

      

    第三步: 在页面拿数据 这里使用了修饰器@

    import React, { Component } from 'react'
    import { connect } from 'react-redux'
    import { Table } from 'antd';
    import { getLimitData } from '@/actions/home' //从actions拿方法
    export default @connect(state => {
      return {
        data: state.home0428.data,    //再这里拿到数据
        count: state.home0428.count    
      }
    }, {
      getLimitData          //引入方法
    })

    class Home extends Component {
      componentDidMount() {
        this.props.getLimitData({ limit: 10 })  //再加载阶段,使用方法并且传入参数
      }

      //分页index
      changePage(current) {  //点击分页下面的页码, 获取到下标
        //   console.log( current )
        this.props.getLimitData({ page: current, limit: 10 })  //把当前页面,和分页长度传到redux里     (page是页码,页码从1开始,不传默认是1 ,分页长度最少1,不传默认20 ,)括号里的是我那接口的要求
      }
      render() {
        const columns = [
          {
            title: '编号',
            dataIndex: 'id',
            key: 'id',
          },
          {
            title: '标题',
            dataIndex: 'title',
            key: 'title',
          },
          {
            title: '使用',
            dataIndex: 'tags',
            key: 'tags',
          },
          {
            title: '图片',
            dataIndex: 'thumb',
            key: 'thumb',
          },
        ];
        // 表格分页设置
        const paginationProps = {     
      showTotal: () => `共${this.props.count}条`,
          pageSize: 10,      每页显示多少条数据
          total: this.props.count,  //总条数
          onChange: (current) => this.changePage(current)  //动态获取页码
        }
        const { title, data, count } = this.props
        // console.log(count,data)
        return (
          <div>
            <Table
              rowKey="id"  //获取我数据库里的id ,key值必须加
              dataSource={data}
              columns={columns}
              pagination={paginationProps}  //分页设置
            />
          </div>
        )
      }
    }

      

  • 相关阅读:
    Linux LCD驱动(四)--驱动的实现
    Linux LCD驱动(三)--图形显示
    s3c2440的LCD字符显示
    Linux framebuffer显示bmp图片
    Linux Framebuffer编程简介
    linux 2440 LCD 应用程序编程
    嵌入式Linux下S3C2410的调色板彩色显示
    l​i​n​u​x​下​L​C​D​(​f​r​a​m​e​b​u​f​f​e​r​)​驱​动​分​析
    我的基本信息
    unity生命周期
  • 原文地址:https://www.cnblogs.com/yetiezhu/p/12794481.html
Copyright © 2011-2022 走看看