マテリアル UI テーブルにデータをロードするための GraphQL クエリを作成しています。スクロール時により多くのデータをロードしたい。
データはテーブルに正しく入力されていますが、ページネーションは正しく機能していません。
return (
<Query
query={MESSAGE_QUERY}
variables={{
where: getQueryVariables({
date,
}),
limit: 50,
offset: 0,
sortingOrder,
}}
fetchPolicy="cache-and-network"
>
{({ data, fetchMore }: QueryResult) => {
fetchMore({
variables: {
offset: data.message
? data.message.length
: 0,
},
updateQuery: (
prevResult: { DataRowProps: any },
{ fetchMoreResult }: any,
) => {
if (!fetchMoreResult) return prevResult;
return Object.assign({}, prevResult, {
...fetchMoreResult.DataRowProps,
});
},
});
return data.message
? data.message.map(
(rowData: DataRowProps, index: number) => {
return containmentDOMRect ? (
<VisibilitySensor
containment={containmentDOMRect.current || undefined}
onChange={isVisible =>
isVisible && index % LOAD_SIZE === 0 && index >= LOAD_SIZE
? loadMoreData(index)
: undefined
}
>
<DataRowComponent
{...rowData}
index={index}
selectedRow={selectedRow}
callBack={callBack}
/>
</VisibilitySensor>
) : null;
},
)
: null;
}}
</Query>
);
};
コードの実行中にエラーは表示されませんが、スクロール時にさらにデータが読み込まれません。スタック オーバーフローの制限のため、重要でないコードをいくつか削除しました。提供する必要がある場合はお知らせください。どんな助けでも大歓迎です。