我需要实现下载功能。它将尊重当前列,过滤器和排序,读取react-data-grid(数据框)中的数据,并创建一个数组json(或逗号分隔的字符串),然后将其传递给react-csv模块。
我有一个从后端填充的数据结构,但未对其进行过滤或排序。我需要能够逐行向网格询问其数据。谁能指出我正确的方向?
答案 0 :(得分:0)
没有代码或上下文,我无法确定地回答...
您为rowGetter道具提供了要显示的集合,或者为要显示的行提供了方法...我在考虑是否进行过滤,那么很可能已经有了某种支持该功能的机制...无论哪种方式,您可以通过某种方式使用此属性的值来获取在网格中看到的内容。
如果从字面上想查询网格,则可以尝试向网格添加引用,然后查看是否可以向其查询行数据。我不能确定地记得我通过ref在网格中看到了一个行道具,但是我想你应该能够(**,)
...
handleExport = async => {
const exportRows = rows;
// const exportRows = getRows(initialRows, filters);
// const exportRows = this.state.gridref.CurrentRows DISCLAIMER:CurrentRows is just for giving the idea... check out the ref yourself to see if it's possible to get the rows via the grid refs props.
downloadCSV( exportRows )
}
...
<ReactDataGrid
ref={input => {this.state.gridref = input}}
columns={columns}
rowGetter={i => rows[i]} // or maybe rowGetter={i => getRows(initialRows, filters)[i]}
rowsCount={rows.length}
onGridSort={(sortColumn, sortDirection) =>
setRows(sortRows(initialRows, sortColumn, sortDirection))
}
/>
我只在this.state.gridRef
中设置过constructor
道具,但我想您也可以在componentDidMount
中进行过[设置/初始化]它。 ..
这样初始化:
this.state.gridRef = React.createRef()