问题描述
我在使用 DataTable 和延迟加载时遇到问题。
当我激活延迟加载参数(我无法删除,因为来自 api 的请求太大)时,激活延迟加载时过滤和排序不起作用。我明白为什么它会这样工作,但我真的不知道如何解决它。
链接到代码和框 -> https://codesandbox.io/s/datatable-t92wk
我对 Primereact 中的基本示例进行了一些修改,例如添加延迟加载、删除分页并用虚拟滚动替换它。我还对过滤进行了修改,但我认为我所做的并不完全正确,但在这种情况下是有效的:它停止了延迟变量,因此我可以使用延迟加载。
我想做的是对表中已加载的数据进行排序:)
谢谢
解决方法
有同样的问题。显然,您不能在延迟加载模式 (link) 中使用过滤。很有道理。
对于排序,您可以传递一个 onSort
函数,并且每次发生排序事件(即:用户单击列标题)时,您都可以发回数据库请求。
const onSort = (e) => {
// use e.sortField and e.sortOrder to send a DB request,}
<DataTable onSort={onSort} ... // rest of the stuff />