无法在 Graphql Relay 中获取数据

问题描述

我正在学习在 React-Relay 项目中使用 Relay。在互联网上进行研究和学习之后,我遇到了我的 graphql 模式和解析器的问题。我似乎无法弄清楚我需要什么解析器以及如何正确进行。如果有人能指出我正确的方向,那就太好了。我在下面附上了我的代码。我要做的就是使用中继 graphql 服务器规范获取列表的元素。

Graphql 架构

interface Node {
    id: ID!
}

type Link implements Node {
    id: ID!
    title: String!
    description: String!
}

type LinkConnection {
    edges: [LinkEdge]
    pageInfo: PageInfo!
}

type LinkEdge {
    cursor: String!
    node: Link
}

type Query {
    links(after: String,before: String,first: Int,last: Int): LinkConnection
    node(id: ID!): Node
}

type PageInfo {
  hasNextPage: Boolean!
  hasPrevIoUsPage: Boolean!
  startCursor: String
  endCursor: String
}

解析器

const resolvers = {
    Query,Node: {
        __resolveType(node,context,info){
            if(node.title){
                return 'Link'
            }
            return null
        }
    },}


查询解析器

const node = async (parent,args,{prisma}) => {
    try{
        console.log('hit')
        const data = await prisma.link.findUnique({
            where: {
                id: Number(args.id)
            }
        })
        console.log(data)
        return data
    } catch(err){
        return err
    }
}

export default {
    node,}

附言我在后台使用 Apollo Server 和 prisma

编辑:

解决了这个问题,因为我意识到解析的调用顺序与模式嵌套的顺序相同。因此,通过为每种类型编写单独的解析器并在父参数中传递信息,一切都奏效了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)