问题描述
我正在学习在 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 (将#修改为@)