首页 > 解决方案 > Graphql 不生成导出类型

问题描述

我正在尝试遵循 Ben Awad 的 lireddit 教程。

我目前卡住了,因为我正在尝试加载本地主机并且收到一条错误消息:

服务器错误 TypeError: (0 , generated_graphql__WEBPACK_IMPORTED_MODULE_4 _.usePostsQuery) 不是函数或其返回值不可迭代

生成页面时发生此错误。任何控制台日志都将显示在终端窗口中。

它不喜欢如下代码:

 const [{ data, fetching }] = usePostsQuery({
        variables,
      });

Ben 的 generate/graphql 文件有一个 export 语句如下:

export function usePostsQuery(options: Omit<Urql.UseQueryArgs<PostsQueryVariables>, 'query'> = {}) {
  return Urql.useQuery<PostsQuery>({ query: PostsDocument, ...options });
};

我的没有。我们都有相同的查询定义,如下所示:

export type Query = {
  __typename?: 'Query';
  hello: Scalars['String'];
  posts: PaginatedPosts;
  post?: Maybe<Post>;
  me?: Maybe<User>;
};

我所有的代码生成脚本都已成功运行(实现与 Ben 相同的代码)。我的 generate/graphql 有其他导出的查询函数,例如:

export function useMeQuery(options: Omit<Urql.UseQueryArgs<MeQueryVariables>, 'query'> = {}) {
  return Urql.useQuery<MeQuery>({ query: MeDocument, ...options });
};

如果 graphql 不生成导出函数语句,是否有人对如何排除故障有任何想法?

当我尝试使用有问题的代码时,我收到一条错误消息:

TypeError: (0 , generated_graphql__WEBPACK_IMPORTED_MODULE_4 _.usePostsQuery) 不是函数或其返回值不可迭代

我不知道如何强制 graphql 制作该功能。

我在 github 上看到过这个问题,但不明白关于如何配置解决方案的评论。

标签: graphqltypegraphql

解决方案


推荐阅读