Apollo客户端不查询自定义标量类型
创始人
2024-09-09 11:00:49
0

为Apollo客户端添加自定义标量类型解析器。

在定义自定义标量类型时,通常需要在服务器端和客户端都定义。下面是一个自定义标量类型的示例:

在服务器端(GraphQL schema定义):

scalar Date

type Query {
  events: [Event]
}

type Event {
  id: ID!
  name: String!
  date: Date!
}

在客户端(通过Apollo客户端定义):

const client = new ApolloClient({
  link: httpLink, // 浏览器HttpLink或HttpLink才能从服务器查询
  cache: new InMemoryCache(),
  // 添加标量类型的解析器
  resolvers: {
    Date: new GraphQLScalarType({
      name: 'Date',
      parseValue(value) {
        return new Date(value); // 将从服务器接收的值转换为Date对象
      },
      serialize(value) {
        return value.toISOString(); // 将Date对象序列化为字符串
      },
      parseLiteral(ast) {
        if (ast.kind === Kind.STRING) {
          return new Date(ast.value); // 将GraphQL AST解析为Date对象
        }
        return null;
      },
    }),
  },
});

在此示例中,我们使用GraphQLScalarType定义了一个名为Date的标量类型,并在Apollo客户端中添加了该类型的解析器。在解析器中,我们将从服务器接收的值转换为Date对象,并将Date对象序列化为字符串,以便GraphQL可以正确处理它。使用parseLiteral方法,我们可以将GraphQL AST解析为Date对象。

然后,在客户端中,我们就可以正常查询到自定义标量类型了:

const GET_EVENTS = gql`
  {
    events {
      id
      name
      date
    }
  }
`;

function Events() {
  const { loading, error, data } = useQuery(GET_EVENTS);
  if (loading) return 'Loading...';
  if (error) return `Error! ${error.message}`;
  return data.events.map(event => (
    

{event.name}

{event.date.toLocaleString()}

)); }

相关内容

热门资讯

事发当天!上饶辅助设备出租,真... 事发当天!上饶辅助设备出租,真是是真的辅助工具(有挂头条)-哔哩哔哩上饶辅助设备出租脚本下载中分为三...
随着!菠萝神辅助器app,一直... 随着!菠萝神辅助器app,一直是有辅助平台(有挂教程)-哔哩哔哩1、很好的工具软件,可以解锁游戏的菠...
推出新举措!兴动海满辅助,一贯... 您好,兴动海满辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
做出回应!微乐贵阳捉鸡麻将挂软... 做出回应!微乐贵阳捉鸡麻将挂软件,果然真的是有辅助神器(有挂秘诀)-哔哩哔哩1、打开软件启动之后找到...
反观!九游破解辅助插件,都是真... 反观!九游破解辅助插件,都是真的有辅助神器(有挂秘籍)-哔哩哔哩九游破解辅助插件能透视中分为三种模型...
据文件显示!科米台州麻将辅助,... 据文件显示!科米台州麻将辅助,真是有挂辅助app(竟然有挂)-哔哩哔哩1、每一步都需要思考,不同水平...
今天上午!赣湘互娱挂,总是是有... 今天上午!赣湘互娱挂,总是是有辅助修改器(有挂详情)-哔哩哔哩1、在赣湘互娱挂插件功能辅助器技巧中,...
来临!广西友乐解码器辅助器,原... 来临!广西友乐解码器辅助器,原来真的是有辅助脚本(真的有挂)-哔哩哔哩1.广西友乐解码器辅助器 选牌...
来临!新天道辅助脚本,确实有挂... 来临!新天道辅助脚本,确实有挂辅助下载(有挂秘诀)-哔哩哔哩1、金币登录送、破产送、升级送、活动送。...
近期!青橙竞技卡五星辅助,好像... 近期!青橙竞技卡五星辅助,好像真的是有辅助脚本(竟然有挂)-哔哩哔哩1、用户打开应用后不用登录就可以...