You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphQL报错:模块'lib/graphql'未导出'useAllCCIssuesQuery',如何更新?

问题

报错信息

GraphQL: Module '"lib/graphql"' has no exported member 'useAllCCIssuesQuery'

问题描述

我正在学习使用GraphQL,已在service和对应的resolver中创建了查询,后端执行prisma generate无报错,但不知道如何更新lib/graphql模块以包含自定义查询。

相关代码

service.ts

import { prisma } from "../../lib/prisma"
import { Service } from "typedi"
import { IssueInput } from "./inputs/create.input"
import { Resolver } from "type-graphql"
import { Issue } from "./issue.model"

@Service()
@Resolver(() => Issue)
export class IssueService {
  async createIssue(data: IssueInput) {
    return await prisma.issue.create({ data })
  }

  async getAllIssues() {
    return await prisma.issue.findMany()
  }

  async getAllClimateChangeIssues() {
    return await prisma.issue.findMany({where: {issueCategory: "CLIMATE_CHANGE"}}) 
  }

  async getIssue(id: string) {
    return await prisma.issue.findUnique({ where: { id } })
  }
}

resolver.ts

import { Arg, Mutation, Query, Resolver } from "type-graphql"
import { Issue } from "./issue.model"
import { IssueService } from "./issue.service"
import { IssueInput } from "./inputs/create.input"
import { Inject, Service } from "typedi"

@Service()
@Resolver(() => Issue)
export default class IssueResolver {
  @Inject(() => IssueService)
  issueService: IssueService

  @Query(() => [Issue])
  async allIssues() {
    return await this.issueService.getAllIssues()
  }

  @Query(() => [Issue])
  async allClimateChangeIssues() {
    return await this.issueService.getAllClimateChangeIssues()
  }

  @Query(() => Issue)
  async issue(@Arg("id") id: string) {
    return await this.issueService.getIssue(id)
  }

  @Mutation(() => Issue)
  async createIssue(@Arg("data") data: IssueInput) {
    return await this.issueService.createIssue(data)
  }
}
解决方案

lib/graphql中的查询钩子是根据后端GraphQL Schema自动生成的,和prisma generate无关,你需要执行以下步骤更新该模块:

  • 启动后端GraphQL服务:确保后端服务处于运行状态,这样代码生成工具能获取到最新的Schema。
  • 重新生成客户端GraphQL代码:你应该用到了@graphql-codegen/cli这类工具,找到项目中的代码生成配置文件(如codegen.yml或codegen.ts),执行生成命令:
    npm run generate
    # 或使用yarn
    yarn generate
    
    该命令会读取后端最新的Schema,更新lib/graphql下的所有类型和查询钩子,包括你新增的allClimateChangeIssues对应的查询钩子(注意命名可能和Resolver方法名对应,比如useAllClimateChangeIssuesQuery,你报错中的useAllCCIssuesQuery可能是缩写后的命名,需看生成规则)。
  • 检查生成配置:如果生成后仍无对应钩子,检查配置文件:
    • 是否正确指向后端GraphQL服务的Schema地址(如http://localhost:4000/graphql)
    • 输出路径是否设置为lib/graphql
    • 是否配置了生成React查询钩子的插件(如@graphql-codegen/typescript-react-apollo)

内容的提问来源于stack exchange,提问作者Mel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:06:25