Antd Table 跳过页面:无数据
Antd Table Skip page: No Data
我叫一个offset-based paginated GraphQL endpoint. The data then gets displayed in an Antd Table.
现在,当点击浏览页面时,一切都按预期进行:获取数据并将其附加到先前获取的数据中。
但是,如果跳过页面,则会触发相同的例程。
例如
const previousData = [10, 11, 12]; // we are on page 1
// fetchMore && updateQuery, going to page 3 directly
const updatedData = [10, 11, 12, 30, 31, 32];
// Antd Table tries to access data on page 3, therefore at index behind item 32,
// as the page 3 items are in the place of page 2 items
这是意料之中的行为,到目前为止,我只对第一页和第三页上的数据感兴趣,对第二页不感兴趣。但是,Antd Table 尝试通过跳过前两页来显示第三页上的数据,同时假设页面大小为每页 3 个项目。
因此,pageSize * currentOffset = 3 * 1 = 6
它尝试访问超出范围的数据并显示 "No Data"。
有没有办法绕过它?我做错了什么?
哦。我的。上帝。
我自己找到了答案。
问题是我自己合并了数据:
const mergedData = [...previousData, ...updatedData]
然后用这个来展示
显然,这不是要走的路。
而是 完全替换现有数据。
所以现在我在 Apollo fetchMore
中做的是这样的:
updateQuery: (previousResult, { fetchMoreResult }) => fetchMoreResult,
现在,一切正常。
我叫一个offset-based paginated GraphQL endpoint. The data then gets displayed in an Antd Table.
现在,当点击浏览页面时,一切都按预期进行:获取数据并将其附加到先前获取的数据中。 但是,如果跳过页面,则会触发相同的例程。
例如
const previousData = [10, 11, 12]; // we are on page 1
// fetchMore && updateQuery, going to page 3 directly
const updatedData = [10, 11, 12, 30, 31, 32];
// Antd Table tries to access data on page 3, therefore at index behind item 32,
// as the page 3 items are in the place of page 2 items
这是意料之中的行为,到目前为止,我只对第一页和第三页上的数据感兴趣,对第二页不感兴趣。但是,Antd Table 尝试通过跳过前两页来显示第三页上的数据,同时假设页面大小为每页 3 个项目。
因此,pageSize * currentOffset = 3 * 1 = 6
它尝试访问超出范围的数据并显示 "No Data"。
有没有办法绕过它?我做错了什么?
哦。我的。上帝。 我自己找到了答案。
问题是我自己合并了数据:
const mergedData = [...previousData, ...updatedData]
然后用这个来展示
显然,这不是要走的路。 而是 完全替换现有数据。
所以现在我在 Apollo fetchMore
中做的是这样的:
updateQuery: (previousResult, { fetchMoreResult }) => fetchMoreResult,
现在,一切正常。