访问 ReactTable 中的过滤数据

Posted

技术标签:

【中文标题】访问 ReactTable 中的过滤数据【英文标题】:Access filtered data in ReactTable 【发布时间】:2018-06-15 16:39:44 【问题描述】:

我正在使用ReactTable,并将filterable 设置为true。我需要访问应用过滤器后返回的数据,以便生成过滤后数据的 CSV。

关于如何获取过滤后的数据(如 JSON)的任何想法?一直在https://react-table.js.org/#/story/custom-filtering这里乱七八糟,目前还没有找到方法来抓取被过滤掉的数据。

【问题讨论】:

【参考方案1】:

React table 可以将 render prop 作为子项,您可以从传递给该 render fn 的 table state 中挑选数据,

<ReactTable ...props>
    (state, makeTable, instance) => 
        // take data from state, resolvedData, or sortedData, if order matters (for export and similar)
        // you need to call makeTable to render the table
        return (
                <>
                    makeTable()
                    <p>`Showing $state.resolvedData.length entries`</p>
                 </>
        );
      
</ReactTable>

【讨论】:

【参考方案2】:

如果您使用带有钩子的 React 16.7-alpha+,您也可以执行以下操作。

import  useState, useRef  from 'react';

const [pageSize, setPageSize] = useState(20);
let reactTable = useRef(null);

<ReactTable
    ref=(r) => (reactTable = r)
    onFilteredChange=() => 
      setPageSize(reactTable.getResolvedState().sortedData.length);
    
/>

【讨论】:

【参考方案3】:

我刚刚通过引用这个article找到了答案

得到如下表的引用:

<ReactTable
  ref=(r) => 
    this.selectTable = r;
  
  ...
/>

在你的函数中

const currentRecords = this.selectTable.getResolvedState().sortedData;

【讨论】:

以上是关于访问 ReactTable 中的过滤数据的主要内容,如果未能解决你的问题,请参考以下文章

无法访问应用引擎开发服务器上的 servlet 过滤器中的会话数据

访问过滤器数据

如何遍历 ReactTable 中的对象数组以显示数据?

高级算法篇:布隆过滤器?非也,布谷鸟过滤器是也

如何使用过滤器从 C# 中的访问中选择特定字段

Servlet和JSP中的过滤器都是Java类