使用 React 和 Antd 实现带搜索和筛选功能的表格组件

· 约 8 分钟读完

前端开发中,表格组件是一个非常常见的需求。例如,在展示数据列表的页面中,通常需要有一个表格来展示数据,并且还需要支持用户输入关键字进行搜索,或者根据某些条件进行筛选。本文将介绍如何使用 React 和 Antd 实现带搜索和筛选功能的表格组件。

环境准备

本文使用 React 和 Antd 实现表格组件,所以需要先安装相关依赖。

  • React
  • Antd

可以使用 create-react-app 快速创建 React 项目,在项目中使用 npm 或者 yarn 安装 Antd。

实现思路

我们需要实现一个支持搜索和筛选的表格组件,其核心思路如下:

  1. 从后端获取数据,并渲染为表格形式。
  2. 添加搜索框,当用户输入关键字时,对表格中的数据进行过滤并重新渲染。
  3. 添加筛选条件,当用户选择条件时,对表格中的数据进行过滤并重新渲染。

下面就让我们逐一实现这三个步骤。

渲染数据

首先,我们需要从后端获取数据。这里假设我们的数据接口返回的数据格式为:

我们可以使用 Antd 的 Table 组件来将数据渲染成表格形式。示例代码如下:

代码中,dataSource 是从后端获取的数据,columns 列出了表格中的每一列数据的格式。最后,将 dataSource 和 columns 传给 Table 组件即可将数据渲染成表格。

实现搜索功能

我们来添加搜索功能。Antd 的 Input 组件可以用来作为搜索框。当用户输入关键字时,我们需要根据关键字来过滤表格中的数据。

代码中,我们使用了 useState 来保存 searchKey 的值,这样可以实现在用户输入关键字时动态更新搜索结果。同时,我们还使用了 filter 方法对数据进行过滤,最终结果会渲染到 Table 中。

实现筛选功能

我们再来添加筛选功能。Antd 的 Select 组件可以用来作为筛选条件。当用户选择特定条件时,我们需要根据条件来过滤表格中的数据。

代码中,我们添加了一个 Select 组件来实现筛选条件,包括 "全部"、"男"、"女" 三个选项。我们使用 useState 来保存 filterKey 的值,在 filter 中根据 filterKey 的值来过滤数据。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d64993a941bf7134bfd584