reactjs - 如何在 reactJs 中使用表格添加下一个和上一个按钮?
问题描述
我有一个从 JSON 插入数据的表。使用 React.Component,创建表如下:
<tbody>
{DATA.map(x => (
<tr>
<td>{x.date}</td>
<td>{x.name}</td>
<td>{x.language}</td>
<td><a href={x.link} target="_blank" class="btn">Click to Listen</a></td>
</tr>
))}
</tbody>
数据显示正确,但我必须在表格中添加下一个和上一个按钮。我怎样才能做到这一点?
至少<tr>
应同时显示 5 个。
[![在此处输入图像描述][1]][1]
解决方案
由于您显示的代码如此之少,我假设您正在使用反应,并使用功能组件。
const [ page, setPage ] = useState(0); //create page state
const pageData = useMemo(() => { //use useMemo to memorize the page
return DATA.slice(page*5, (page*5)+5)
},[page])
const nextPage = () => setPage(prev => prev+1) //next page
const prevPage = () => setPage(prev => prev > 0 ? prev-1 : prev) //prev page - need to add condition here so it doesn't go below 0
在您的渲染中,使用pageData
代替DATA
,例如
<tbody>
{pageData.map(x =>
<tr>
<td>{x.date}</td>
<td>{x.name}</td>
<td>{x.language}</td>
<td><a href={x.link} target="_blank" class="btn">Click to Listen</a></td>
</tr>
)}
</tbody>
然后,您可以创建按钮来调用nextPage
,prevPage
例如
<button onClick={nextPage}>Next</button>
您必须添加自己的代码来检查最大页数和最小页数,以免引发错误。
推荐阅读
- php - 如何链接到页面的特定部分 HTML PHP
- c# - 当后端代码中的简单键值变量工作相同时,为什么要使用 redis 作为缓存层?
- google-apps-script - Google Slides Apps 脚本检索页面中的形状
- python-3.x - 在 KNeighborsClassifier 中使用自定义指标时,我不断收到“TypeError:只有整数标量数组可以转换为标量索引”
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误