• 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>
        )
      }
    }

      

  • 相关阅读:
    考虑浏览器兼容的文件上传(IE8不支持FormData)
    IDEA tomcat 部署WEB项目
    如何在springcloud分布式系统中实现分布式锁?
    ABAP DEMO33 选择周的搜索帮助
    ABAP函数篇1 日期函数
    ABAP函数篇2 测试DATE_CONVERT_TO_FACTORYDATE
    增强篇7 判断标准屏幕能否做屏幕增强
    增强篇6 CMOD增强删除
    ABAP DEMO 年月的搜索帮助
    HoloLens开发手记-配置开发环境 Install the tools
  • 原文地址:https://www.cnblogs.com/yetiezhu/p/12794481.html
Copyright © 2020-2023  润新知