我将首先介绍我的应用程序:简单的投票应用程序,用户可以在其中创建和投票。简单的。
目前我的 graphql 模式由用户类型、投票类型和投票类型组成,其中用户和投票与其投票具有一对多关系,使用中继连接。
投票类型包含,连同对其投票者和投票的引用,它的时间戳和实际投票值。
现在,据我所知,在规则 graphql 列表上使用连接的优势之一是能够在边缘存储数据(除了分页等等......)。
我怎么能那样做?
如果确实有可能,我的计划是摆脱投票类型,通过连接直接连接用户和他投票的民意调查,并在连接边缘存储投票值和时间戳。
如果重要的话,选民和他的民意调查之间的连接应该是双向的,即每个用户都连接到他投票的民意调查,每个民意调查都连接到它的选民。
最佳答案
这可能更好地使用单独的 Vote
实体建模,如 Michael Paris's answer 中所述,但是,为了解决更普遍的问题“我如何在边缘上定义附加字段?”,请注意,您可以将 edgeFields
传递到 connectionDefinitions
函数 in the graphql-relay module 中。
有一个例子 in the test suite :
var {connectionType: friendConnection} = connectionDefinitions({
name: 'Friend',
nodeType: userType,
resolveNode: edge => allUsers[edge.node],
edgeFields: () => ({
friendshipTime: {
type: GraphQLString,
resolve: () => 'Yesterday'
}
}),
connectionFields: () => ({
totalCount: {
type: GraphQLInt,
resolve: () => allUsers.length - 1
}
}),
});
关于reactjs - react 中继 : Adding data to edges,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37983078/