首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react- Data - Table -component进行数据表过滤

使用react- Data - Table -component进行数据表过滤
EN

Stack Overflow用户
提问于 2020-06-09 11:13:00
回答 2查看 7.7K关注 0票数 3

我需要将下面的代码转换成没有钩子的普通类组件,有人能帮我吗,这里是我引用的https://jbetancur.github.io/react-data-table-component/?path=/story/filtering--example-1链接,我需要做过滤而不使用钩子,因为我只使用类组件。以下是我使用的版本:- "react-data-table-component":"^6.9.3","react":"^16.12.0",

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-09 11:26:49

我想这就是你要找的..。

代码语言:javascript
复制
 class BasicTable extends React.PureComponent {
      constructor(props) {
        super(props);
        this.state = { filterText: "", resetPaginationToggle: false };
        this.filteredItems = fakeUsers.filter(
          (item) =>
            item.name && item.name.toLowerCase().includes(filterText.toLowerCase())
        );
      }

      handleClear = () => {
        const { resetPaginationToggle, filterText } = this.state;

        if (this.state.filterText) {
          this.setState({
            resetPaginationToggle: !resetPaginationToggle,
            filterText: ""
          });
        }
      };

      getSubHeaderComponent = () => {
        return (
          <FilterComponent
            onFilter={(e) => {
              let newFilterText = e.target.value;
              this.filteredItems = fakeUsers.filter(
                (item) =>
                  item.name &&
                  item.name.toLowerCase().includes(newFilterText.toLowerCase())
              );
              this.setState({ filterText: newFilterText });
            }}
            onClear={this.handleClear}
            filterText={this.state.filterText}
          />
        );
      };

      render() {
        return (
          <DataTable
            title="Contact List"
            columns={columns}
            data={this.filteredItems}
            pagination
            paginationResetDefaultPage={this.state.resetPaginationToggle} // optionally, a hook to reset pagination to page 1
            subHeader
            subHeaderComponent={this.getSubHeaderComponent()}
            selectableRows
            persistTableHead
          />
        );
      }
    }
票数 3
EN

Stack Overflow用户

发布于 2021-08-03 09:02:53

可以在组件本身中进行筛选

代码语言:javascript
复制
<DataTable
    pagination="true"
    columns={columns}
    data={leaderBoardList.filter((item) => {
      if (searchTerm === "") {
        return item;
      } else if (
        item.name.toLowerCase().includes(searchTerm.toLowerCase())
      ) {
        return item;
      }
    })}
  />
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62274407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档