如何解决没有缓存和加载更多的阿波罗客户端不起作用
当我将 no-cache
设置为查询的获取策略时,会发生很多奇怪的事情。
第一个问题:. load more
按钮不再起作用,因此为了使其再次起作用,我添加了 notifyOnNetworkStatusChange: true,
并开始起作用,但再次出现第二个问题。
第二个问题:如果没有我自己的 mergeFunction
,fetch more 根本不起作用。所以我也加了这个..
function mergeFunction(existing: [],incoming: []) {
if (!incoming) return existing;
if (!existing) return incoming;
return [...existing,...incoming];
}
const client = new ApolloClient({
uri: subgraphUrl,cache: new InMemoryCache({
typePolicies: {
Query: {
fields: {
daos: {
keyArgs: ['where',['name']],merge: mergeFunction,},}),connectToDevTools: true,});
但是出现了第三个问题。
第三个问题:在我点击 load more
按钮后,执行这个
const loadMore = async () => {
if (fetchMore) {
fetchMore({
variables: {
offset: visibleDaoList.length,});
}
};
事实证明,在列表中,记录会一遍又一遍地重复,并且列表永远不会结束。即使我有 10 条记录,我还是可以一次又一次地点击加载更多,它会显示重复的内容。
我做错了吗?出于某种原因,我需要使用 no-cache
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。