问题描述
我有 2 个不同的 useQuery。对于聊天和用户,我使用 offsetBase 分页进行无限滚动。当为用户运行 loadMore 时,它会触发聊天查询重新获取。 合并时我的缓存没有出现的另一个问题。
缓存
lastChats: {
merge(existing,incoming,{ readField }){
let merged = existing ? existing.slice(0) : [];
const existingIdSet = new Set(
merged.map(messa=>readField('_id',messa))
)
incoming = incoming.filter(messa=>{
return !existingIdSet.has(readField('_id',messa))
})
return [...merged,...incoming]
}
},
fetchMore 方法
const loadMoreChats = () =>{
if(hasNext){
fetchMore({
variables:{
userId,offset: data.lastChats.length,}
}).then(({data})=>{
if(data.lastChats.length===0){
sethasNext(false)
}
})
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)