反应原生 ApolloClint fetchMore 触发另一个 useQuery=>refetch

问题描述

我有 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 (将#修改为@)