如何在react.js中实现表中列表数据的分页



需要快速帮助!我有一个API表中的数据列表。我需要将这个数据列表分页为一个小的数据列表。

这是VendorsDetail.js的代码,它在表中显示数据列表

import React, { useState, useEffect } from "react";
import HelpOutlineIcon from "@mui/icons-material/HelpOutline";
import axios from "axios";
import VendorDetailsBrief from "./VendorDetailsBrief";
import Pagination from "./Pagination";
const VendersDetail = ({ textMe }) => {
const [data, setData] = useState({});
const foo = "cpe:2.3:a:oracle:peoplesoft_enterprise:8.22.14";
const baseURL =
"https://services.nvd.nist.gov/rest/json/cves/1.0?cpeMatchString=" + foo;
useEffect(() => {
axios
.get(baseURL)
.then((response) => {
setData(response.data);
})
.then(
(response) => {},
(err) => {
alert(err);
}
);
}, []);
const DisplayData = data?.result?.CVE_Items?.map((vender) => {
return (
<tr>
<td className="color_id font-semibold">
{vender?.cve?.CVE_data_meta?.ID}
</td>
<td className="w-96">
{vender?.cve?.description?.description_data?.[0]?.value}
</td>
<td>{vender?.impact?.baseMetricV2?.exploitabilityScore}</td>
<td>{vender?.impact?.baseMetricV2?.severity}</td>
<td>{vender?.impact?.baseMetricV2?.impactScore}</td>
</tr>
);
});
return (
<div className="z-100 flex justify-center items-center mt-10">
<div className="text-black">
<div className="rounded overflow-hidden flex  justify-center items-center">
<table class="table table-striped ">
<thead>
<tr>
<th>Vuln ID</th>
<th>Description Data</th>
<th>Exploitability Score</th>
<th>Severity</th>
<th>Impact Score</th>
</tr>
</thead>
<tbody>{DisplayData}</tbody>
</table>
</div>
</div>
</div>
);
};
export default VendersDetail;

分页.js

import React from";反应";;

const Pagination = ({ postsPerPage, totalPosts, paginate }) => {
const pageNumbers = [];
for (let i = 1; i <= Math.ceil(totalPosts / postsPerPage); i++) {
pageNumbers.push(i);
}
return (
<nav>
<ul className="pagination">
{pageNumbers.map((number) => (
<li key={number} className="page-item">
<a onClick={() => paginate(number)} href="!#" className="page-link">
{number}
</a>
</li>
))}
</ul>
</nav>
);
};
export default Pagination;

如何在这个特定的数据列表中实现分页?感谢

  1. 创建带有逻辑的父组件,以便从URL和分页onCLick处理程序中获取数据。

  2. 父组件应呈现VendorsDetail组件和分页组件。

  3. 将要显示的数据传递给VendorsDetails组件,并将getSubsequentData处理程序传递给Paging组件。

  4. 如果用户单击特定的页码,则使用特定的参数调用getSubsequentData处理程序,该处理程序将更新父组件的状态,从而更新VendorsDetail组件。

    const ParentComponent=((=>{

    const [data, setData] = useState({})
    useEffect = (() => {
    // axios call to get initial data from the URL
    })
    getSubsequentData = (URL) => {
    // axios call to get data based on the URL.
    // LInk this to pagination onClick
    }
    return(
    <VendorsDetail data={data} />
    <Pagination getNextData={getSubsequentData}/>
    

    )}

最新更新