阅读 585

Antdesign_table 点击事件

1.table组件的引入后

    `     <Table
              rowKey={(record) => record.id}
              columns={columns}
              dataSource={reviewList}
              pagination={totalNum > 10 ? pagination : false}
            />
          </div>
    `    
复制代码

2.1columns用法

columns相当于一个表格的title,可以通过数据源,将自己想要的数据放入表格中

`
  const columns = [
    {
      title: '服务编号',
      dataIndex: 'serviceNumber',
      key: 'serviceNumber',
      ellipsis: true,
      render: (text, record) => {
        return <a onClick={() => reviewBtn(record)}>{text}</a>;
      },
    },
  ]

 `
 title是每一列的标题,dataIndex是对应数据源的key,可以通过render属性将每一列的元素添加点击事件,并且通过传入record将这一行的数据传给点击函数 
复制代码

2.2 点击跳转详情页

`
import { history } from 'umi';
const reviewBtn = (record) => {
    history.push({
      pathname: '/supplyDemandApproval/approved/detailDemand',
      query: {
        id: record.id,
        step: 'serviceNumber',
      },
    });
  }; 
  
在umi中引入history、,pathname是自己在路由配置中配置的组件,在跳转页面时,可以通过query进行传递参数,可以传入所点击着一行数据的任何数据,而step是自己设置的标识,以便区分所渲染的内容
  
`复制代码

2.3详情页接收参数,识别标识区分渲染

` 
  const goBack = () => {  //这是点击按钮返回放一个页面
    window.history.back();
  };
  
  
  //这个是获取传递过来的参数,就是serviceNumber
  console.log(history.location.query.step, '获取参数');
  
  //可以通过传入的参数不同,渲染不同的内容
  {history.location.query.step === 'serviceNumber' && <span>详情</span>}

`复制代码

2.4通过传入的参数判断 step组件的默认选中

`
      <Steps
            current={Number(
              history.location.query.step === 'review' || history.location.query.step === 'propose'
                ? 1
                : history.location.query.step === 'accept' || history.location.query.step === 'bill'
                ? 2
                : history.location.query.step === 'check'
                ? 3
                : history.location.query.step === 'duty'
                ? 5
                : 4
            )}
            size="small"
          >
            <Step title="需求申请" />
            <Step title="需求复核" />
            <Step title="需求受理" />
            <Step title="需求审核" />
            {history.location.query.step !== 'serviceNumber' && <Step title="资源挂载" />}
            <Step title="供需完成" />
          </Steps>
          
这里通过传入参数判断 是否渲染资源挂载这一项,在这之前使用了三目运算符的多重判断

`复制代码
  1. dataSource是数据源,自己mock或者从后端获取的数据,数据里的属性需要和自己设置的dataIndex相对应

`
  data: {
          records: [
            {
              id: 10,
              serviceNumber: '123456',
              itemName: '最多跑哟躺啊',
              materialsName:'材料名称',
              applyScene: '应用场景',
              provideUnit: '供给部门',
              cagalogInfo: '姓名|年龄|电话',
              checkDate: '2021-11-04',
              status: '待复核',
            },
          ]
   }
`复制代码
  1. pagination分页功能因数据条数选择性的渲染

    ` 
    pagination={totalNum > 10 ? pagination : false}
    
    //将pagination封装为一个对象,直接都传过去
      const pagination = {
        total: totalNum,
        showSizeChanger: true,
        showTotal: () => `共有${totalNum}条,每页显示:`,
        onChange: onPageChange,
        pageSize: pageSize,
        current: pageNum,
      };
      
      //onPageChange函数,设置状态,通过useEffect 添加依赖请求数据
        const onPageChange = (page, size) => {
            if (pageSize === size) {
              setPageNum(page);
            } else {
              setPageNum(1);
              setPageSize(size);
            }
         };
    
    `复制代码

在table中加入树形结构,有个children属性尤为重要,默认是遇到children就认为是树形结构的下一级


作者:前端白小纯
链接:https://juejin.cn/post/7032917127719813134


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐