React:table组件/Pagination分页组件/Dialog组件 - 点击单元格内容显示弹窗,弹窗的内容由表格内容控制(1)

需要解决的问题:显示接口的执行结果,并显示接口的用例以及用例失败详情

问题分析:执行结果可以用表格展示,失败的用例有零至多个,如果用表格嵌入表格的形式不太美观,而且用例失败详情是以txt存储在本地,不方便存入数据库拉取,所以失败的用例用弹窗展示,并通过链接跳转的方式,打开失败用例详情。

解决方法:表格为父组件,弹窗为子组件

弹窗内的内容:利用父组件当前所在行的唯一标识查找需要的数据,传给子组件回显,并通过href属性跳转

遇到的小问题:

(1)如何通过链接访问本地文件

(2)动态拼接跳转链接

解决方案:(1)访问本地链接有很多方式,最简单的一种就是利用接口

@app.route("/static/<filename>")
def get_filename(filename):
    with open(r'E:/xxxx/static/{}'.format(filename),'rb') as f:
        fileas = f.read()
        resp = Response(fileas,mimetype='application/octet-stream')

然后就可以通过链接访问:

  http://127.0.0.1:5678/static/文件名

(2)拼接一直不对是因为拼接符号的问题

<a href={'http://172.20.11.63:5678/'+record.prepath+'/'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ReactTable组件分页可以通过以下步骤实现: 1. 安装分页组件库,比如react-paginate或者react-js-pagination。 2. 在Table组件中引入分页组件,并将数据分页展示。可以使用state来保存当前页码和每页展示的数据量。 3. 实现页码切换的回调函数,当用户点击页码时,更新state中的当前页码并重新渲染Table组件。 以下是一份示例代码: ```javascript import React, { useState } from 'react'; import ReactPaginate from 'react-paginate'; const Table = ({ data }) => { const [currentPage, setCurrentPage] = useState(0); const pageSize = 10; // 每页展示的数据量 const handlePageClick = ({ selected }) => { setCurrentPage(selected); }; const start = currentPage * pageSize; const end = start + pageSize; const currentData = data.slice(start, end); return ( <> <table> <thead> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> </thead> <tbody> {currentData.map((item) => ( <tr key={item.id}> <td>{item.column1}</td> <td>{item.column2}</td> <td>{item.column3}</td> </tr> ))} </tbody> </table> <ReactPaginate previousLabel="previous" nextLabel="next" pageCount={Math.ceil(data.length / pageSize)} onPageChange={handlePageClick} containerClassName="pagination" activeClassName="active" /> </> ); }; export default Table; ``` 在上面的代码中,我们使用useState来保存当前页码,pageSize指定每页展示的数据量。handlePageClick函数用于更新当前页码。start和end变量用于计算当前页展示的数据范围。最后,我们使用ReactPaginate组件来展示分页按钮。previousLabel和nextLabel分别表示上一页和下一页的文字,pageCount表示总页数,onPageChange用于处理页码切换事件,containerClassName和activeClassName用于指定样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值