13

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

关于如何将过滤后的数据作为 JSON 获取的任何想法?一直在这里弄乱https://react-table.js.org/#/story/custom-filtering,到目前为止还没有找到一种方法来抓取已过滤掉的数据。

4

3 回答 3

14

我刚刚通过参考这篇文章找到了答案

获取如下表的参考:

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

在你的功能中

const currentRecords = this.selectTable.getResolvedState().sortedData;
于 2018-04-27T09:35:33.523 回答
4

如果您使用带有钩子的 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);
    }}
/>
于 2019-01-17T02:59:19.853 回答
0

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>
于 2020-08-06T06:09:35.480 回答