javascript - react js中的位置排名表
问题描述
我正在 Reactjs 中创建一个 Web 应用程序,其排名表全部由 firebase 管理,但我遇到了一个疑问:根据使用“order by”命令下注最多的人对表进行排序后,我希望我能更改位置编号,例如,如果它是第二个,它将成为第一个(从 2 到 1)。那是我的屏幕:
那是我的代码:
import React, {useState, useEffect} from 'react'
import './Table.css'
import {firebase} from '../../firebase'
function Table() {
const [peopleShow, setPeopleShow] = useState([]);
const ref = firebase.firestore().collection("Lista");
console.log(ref);
function getData(){
ref
.orderBy("money", "desc")
.onSnapshot((querySnapshot) => {
const items = [];
querySnapshot.forEach((doc) => {
items.push(doc.data());
});
setPeopleShow(items);
})
}
useEffect(() => {
getData();
}, [])
return (
<section>
<div class="tbl-content">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
{peopleShow.map((val) => {
return(
<tr key={val.ID}>
<td>{val.ID}</td>
<td>{val.nationality}</td>
<td>{val.username}</td>
<td>{val.money} $ <i class="far fa-caret-up"></i></td>
<td>{val.lastbid}</td>
<td>{val.newbid} $</td>
</tr>
)
})}
</tbody>
</table>
</div>
</section>
)}
export default Table
所以我想解决这个疑问,我应该做一个冒泡排序吗?我声明我用我的数据库的 id 暂时定义的表的位置。谢谢大家!!
解决方案
您可以在 map 函数中使用索引,而不是使数字依赖于数据。
{peopleShow.map((val, index) => {
return(
<tr key={val.ID}>
<td>{index + 1}</td>
<td>{val.nationality}</td>
<td>{val.username}</td>
<td>{val.money} $ <i class="far fa-caret-up"></i></td>
<td>{val.lastbid}</td>
<td>{val.newbid} $</td>
</tr>
)
})}
推荐阅读
- scala - Scala 隐式扩展接口
- reactjs - 无法在网站上显示图像 Webpack React-dom 意外语法
- python - 它说“TypeError:__init__() 需要 4 个位置参数,但给出了 5 个”,但我不明白为什么(Python3)
- python - 程序获取数字 1-1000 的列表,将它们反转,将它们放入一个文件(称为 my_file)并将它们打印回 my_file
- python - 使用 Python 和 Tesseract OCR 解决验证码
- python - 国家和人口
- python - 无法将 get 方法与 Tkinter Text Widget 一起使用
- c# - ASP.NET Identity 的 UserManager 是否需要关闭或处置?
- python-3.x - 类中的函数需要类中另一个函数的输入
- c++ - C++我应该长时间以流式阅读方式打开一个大文件吗?