ApolloTypePolicies:自定义合并函数破坏了分页功能
创始人
2024-09-09 13:30:18
0

在自定义合并函数中添加一个标志来指示分页逻辑。如果存在分页标志,则只对没有相应标志的数据进行合并。

例如,假设我们有一个返回用户列表的GraphQL查询,并且我们希望使用自定义合并函数来缓存此查询。以下是合并函数的示例代码:

const mergeUsers = (existing, incoming, { args }) => {
  const { after } = args
  const isCursorBasedPage = !!after // 判断是否存在 `after` 参数

  if (isCursorBasedPage) {
    // 如果是基于游标的分页,则只合并完全不同的列表
    const existingIds = existing ? existing.map((user) => user.id) : []
    const incomingIds = incoming.map((user) => user.id)

    const newUsers = incoming.filter((user) => !existingIds.includes(user.id))
    const merged = [...existing, ...newUsers]

    return merged
  }

  // 否则就是简单的替换整个列表
  return incoming
}

在这个函数中,我们检查是否传递了 after 参数,如果是,则标志为游标分页。然后,我们检查现有列表和新列表之间是否有任何重叠,如果没有,则将它们合并。

然后,在TypePolicy中使用此合并函数,并将分页标志传递给它:

const cache = new InMemoryCache({
  typePolicies: {
    Query: {
      fields: {
        users: {
          keyArgs: false,
          merge(existing, incoming, { args }) {
            const { after } = args
            const isCursorBasedPage = !!after

            if (isCursorBasedPage) {
              const existingIds = existing ? existing.map((user) => user.id) : []
              const incomingIds = incoming.map((user) => user.id)

              const newUsers = incoming.filter((user) => !existingIds.includes(user.id))
              const merged = [...existing, ...newUsers]

相关内容

热门资讯

今日重大通报(微扑克代打)外挂... 今日重大通报(微扑克代打)外挂透明挂辅助app(透视)发牌规律(有挂分析)-哔哩哔哩;原来确实真的有...
一秒答解(Wepoke苹果)外... 一秒答解(Wepoke苹果)外挂透明挂辅助脚本(透视)辅助透视(今日头条)-哔哩哔哩;玩家必备必赢加...
总算了解!智星德州安卓版(we... 总算了解!智星德州安卓版(wepoke)外挂透明挂辅助脚本(辅助挂)安装教程(有挂助手)-哔哩哔哩需...
专业讨论(德州之星手游)外挂透... 大家肯定在之前德州之星手游或者德州之星手游中玩过专业讨论(德州之星手游)外挂透明挂辅助器安装(透视)...
透视ai(鱼扑克app俱乐部)... 透视ai(鱼扑克app俱乐部)外挂透明挂辅助工具(透视)发牌规律(有挂透视)-哔哩哔哩1、这是跨平台...
今日重大通报(德扑操作)外挂透... 今日重大通报(德扑操作)外挂透明挂辅助挂(透视)辅助透视(有挂存在)-哔哩哔哩1、这是跨平台的德扑操...
终于懂了!Wepoke外挂(w... 终于懂了!Wepoke外挂(wepoKe)外挂透明挂辅助挂(辅助挂)透牌教程(确实有挂)-哔哩哔哩是...
记者发布(wepoke辅助透视... 此外,数据分析德州(wepoke辅助透视)辅助神器app还具备辅助透视行为开挂功能,通过对客户wep...
重磅来袭(WPK)外挂透明挂辅... 重磅来袭(WPK)外挂透明挂辅助机制(透视)透视辅助(有挂教学)-哔哩哔哩是由北京得WPK黑科技有限...
必看攻略(微扑克软件)外挂透明... 必看攻略(微扑克软件)外挂透明挂辅助软件(透视)透视辅助(有挂规律)-哔哩哔哩1、每一步都需要思考,...