antdesign v输入框模糊筛选表格数据,并将筛选结果展示
时间: 2023-06-13 08:04:02 浏览: 100
可以通过Ant Design的Table组件和Input组件来实现模糊筛选表格数据的功能。
首先,在Table组件中设置一个筛选函数,用于处理输入框中的筛选条件。可以使用JavaScript中的filter()方法来过滤数据。例如:
```jsx
const { Search } = Input;
function onSearch(value) {
const filteredData = dataSource.filter(item => item.name.includes(value));
setFilteredData(filteredData);
}
<Search placeholder="请输入关键字" onSearch={onSearch} />
<Table dataSource={filteredData} columns={columns} />
```
在上述代码中,Search组件用于输入筛选条件,当用户输入关键字并点击搜索按钮时,onSearch函数会根据关键字对数据进行筛选,并更新筛选后的数据源。
此外,还需要定义表格的数据源和列配置,例如:
```jsx
const dataSource = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park',
},
];
const columns = [
{
title: '姓名',
dataIndex: 'name',
key: 'name',
},
{
title: '年龄',
dataIndex: 'age',
key: 'age',
},
{
title: '地址',
dataIndex: 'address',
key: 'address',
},
];
```
最后,将数据源和列配置传递给Table组件即可展示表格。完整代码如下:
```jsx
import React, { useState } from 'react';
import { Table, Input } from 'antd';
const { Search } = Input;
function App() {
const dataSource = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park',
},
];
const columns = [
{
title: '姓名',
dataIndex: 'name',
key: 'name',
},
{
title: '年龄',
dataIndex: 'age',
key: 'age',
},
{
title: '地址',
dataIndex: 'address',
key: 'address',
},
];
const [filteredData, setFilteredData] = useState(dataSource);
function onSearch(value) {
const filteredData = dataSource.filter(item => item.name.includes(value));
setFilteredData(filteredData);
}
return (
<div>
<Search placeholder="请输入关键字" onSearch={onSearch} />
<Table dataSource={filteredData} columns={columns} />
</div>
);
}
export default App;
```
阅读全文