antd table表格title的值要根据record的值进行变化,record的值从哪得到,可以给我用react hooks 写一个小demo吗
时间: 2024-04-04 15:33:14 浏览: 70
当你使用Ant Design的Table组件时,你需要提供一个数据源(dataSource)数组,该数组中的每个元素都代表表格中的一行数据。在每行数据中,你可以包含任意数量的属性,例如`name`、`age`等,这些属性的值通常来自于后端API或本地状态管理器。
下面是一个使用React Hooks来管理本地状态的示例代码,其中我们使用了`useState`和`useEffect`来模拟一个异步数据源,并将它们传递给Table组件。
```jsx
import React, { useState, useEffect } from "react";
import { Table } from "antd";
const dataSource = [
{ name: "Alice", age: 20, status: "active" },
{ name: "Bob", age: 30, status: "inactive" },
{ name: "Charlie", age: 25, status: "active" }
];
function App() {
const [data, setData] = useState([]);
useEffect(() => {
// 模拟异步请求数据的过程
setTimeout(() => {
setData(dataSource);
}, 1000);
}, []);
const columns = [
{
title: record => (record.status === "active" ? "活跃用户" : "非活跃用户"),
dataIndex: "name",
key: "name",
render: (text, record) => (
<span>
{record.name} -- {record.age}岁
</span>
)
}
];
return (
<div>
<Table dataSource={data} columns={columns} />
</div>
);
}
export default App;
```
在这个示例中,我们使用了一个常量`dataSource`来模拟一个异步数据源,包含了一些用户的基本信息和状态。我们在组件中使用了`useState`钩子来定义一个名为`data`的状态变量,它的初始值为空数组。在`useEffect`钩子中,我们使用了一个setTimeout函数来模拟异步请求数据的过程,并在请求成功后更新了`data`状态变量的值。
在Table组件中,我们使用了定义好的`columns`数组来定义表格的列。其中,`title`属性是一个函数,它根据每个记录的状态返回一个字符串值。在`render`函数中,我们自定义了单元格的内容,使用了`record.name`和`record.age`来显示每行数据的姓名和年龄。
最后,我们将数据源数组和列数组传递给Table组件,并在组件中渲染出表格。当异步请求数据完成后,`data`状态变量的值会被更新,并且Table组件会自动重新渲染表格的内容。
阅读全文