reactjs - 在 reactjs 中渲染表的数据头
问题描述
我可以通过例如渲染herader的表用户:{user[name]}
。但我无法渲染标题本身,例如渲染:Leanne Graham 的名字是 [name]。谁能帮我这个?
import React from 'react'
const Users= ({ users}) => {
return (
<div>
{users.map((user,index) => (
<div key={index}>
<div className="container smcontainer d-flex justify-content-start">
<div className="row">
<div className="col-md-12">
<table className="table table-striped">
<thead>
</thead>
<tbody>
<tr>
<td className=""> {user['id']} </td>
<td className=""> {user['name']} </td>
<td className=""> {user['username']} </td>
<td className=""> {user['email']} </td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
))}
</div>
)}
export default Products
这是 App 组件
class App extends Component {
constructor(props){
super(props)
this.state= {
users: [],
}
}
async componentDidMount() {
const url = ('https://jsonplaceholder.typicode.com/users')
const response = await fetch (url)
const data = await response.json()
this.setState({users: data.itemsList})
console.log({users: data.itemsList})
}
render() {
return (
<Users users = {this.state.users} />
)
}
}
export default App;
解决方案
当您map
遍历数组时,每次返回的内容都会为数组中的每个元素返回。此代码将为每个用户创建一个全新的表。
我认为您想要做的是将列标题与 map 调用分开定义,然后映射到数组以生成行:
const columns = ["ID", "Name", "Username", "Email"];
...
<div>
<div className="container smcontainer d-flex justify-content-start">
<div className="row">
<div className="col-md-12">
<table className="table table-striped">
<thead>
{columns.map(c => <th>{c}</th>)}
</thead>
<tbody>
{users.map((user, index) => (
<tr>
<td className=""> {user['id']} </td>
<td className=""> {user['name']} </td>
<td className=""> {user['username']} </td>
<td className=""> {user['email']} </td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
</div>
我做了一个 Codepen 来演示这两种方式,但对我来说,第一个更有意义。
推荐阅读
- elasticsearch - 如何获取 Kibana 和 Elasticsearch 使用的指标原始数据规范?
- python - 插入或删除条目时如何自动更新列表框小部件?
- regex - 正则表达式:使用正则表达式匹配字符串的第 5 到第 12 个字符
- node.js - 如何处理异步/等待函数中的错误?
- java - 尝试使用谓词、标准和规范为存储库接口编写 Junit
- ios - 通过 ContextMenu 呈现的工作表在第一次尝试时丢失了它的数据
- php - 如何在 Laravel Eloquent 上过滤相关模型
- openssl - PDF格式的白俄罗斯数字签名验证
- java - 对给定整数的数字进行排序,不带“0”
- sql - 在一个 SQL 查询中组合多个总和