Apollo的`subscribeToMore`变量必须与初始查询匹配吗?
创始人
2024-09-09 09:00:35
0

Apollo的subscribeToMore变量不必与初始查询完全匹配。但是,它们必须具有相同的类型签名和返回值类型。

下面是一个示例,展示了如何使用Apollo的subscribeToMore变量:

import { gql, useQuery } from '@apollo/client';

const GET_MESSAGES = gql`
  query GetMessages {
    messages {
      id
      content
    }
  }
`;

const MESSAGE_SUBSCRIPTION = gql`
  subscription OnNewMessage {
    newMessage {
      id
      content
    }
  }
`;

function MessageList() {
  const { loading, data, subscribeToMore } = useQuery(GET_MESSAGES);

  // 订阅新消息
  useEffect(() => {
    const unsubscribe = subscribeToMore({
      document: MESSAGE_SUBSCRIPTION,
      updateQuery: (prev, { subscriptionData }) => {
        if (!subscriptionData.data) return prev;
        const newMessage = subscriptionData.data.newMessage;
        return Object.assign({}, prev, {
          messages: [...prev.messages, newMessage],
        });
      },
    });
    return () => unsubscribe();
  }, [subscribeToMore]);

  if (loading) return 

Loading...

; return (
    {data.messages.map((message) => (
  • {message.content}
  • ))}
); } export default MessageList;

在上面的示例中,使用了Apollo的useQuery钩子来获取初始消息列表。然后,使用subscribeToMore来订阅新的消息。在updateQuery函数中,将新的消息添加到现有的消息列表中,并返回更新后的数据。

相关内容

热门资讯

8分钟攻略!贵阳捉鸡辅助器下载... 8分钟攻略!贵阳捉鸡辅助器下载(透视)外挂透视辅助挂(2021已更新)(哔哩哔哩)1)辅助挂:进一步...
终于懂了(德扑计算软件)外挂透... 终于懂了(德扑计算软件)外挂透视辅助APP(透视)软件透明挂(2025已更新)(哔哩哔哩);科技详细...
玩家科普!扑克时间有没有挂的牌... 玩家科普!扑克时间有没有挂的牌(透视辅助挂)-果真真的有挂(2022已更新);扑克时间有没有挂的牌是...
我来向大家传授!多乐跑胡子辅助... 大家肯定在之前多乐跑胡子辅助器或者多乐跑胡子辅助器中玩过我来向大家传授!多乐跑胡子辅助器,雀神辅助在...
四分钟实锤!微信上的广东雀神麻... 您好,天天卡五星这款游戏可以开挂的,确实是有挂的,需要了解加微【485275054】很多玩家在这款游...
透明有挂!wpk德州代打是真的... 您好,wpk德州代打这款游戏可以开挂的,确实是有挂的,需要了解加微【439369440】很多玩家在这...
终于清楚!hhpoker辅助开... 终于清楚!hhpoker辅助开挂教程(透视辅助挂)-果真真的有挂(2025已更新);亲,这款hhpo...
2分钟了解(德扑之星埋牌)软件... 1、2分钟了解(德扑之星埋牌)软件透明挂辅助机制(透视)软件透明挂(2024已更新)(哔哩哔哩);详...
今日焦点!亲朋游戏有辅助器,微... WePoke高级策略深度解析‌;今日焦点!亲朋游戏有辅助器,微信小程序雀神辅助器汇检测到,2024新...
攻略讲解!扑克世界辅助下载(透... 攻略讲解!扑克世界辅助下载(透视软件挂)-竟然是真的有挂(2021已更新);扑克世界辅助下载是一款非...