我从开始学习,relay-starter-kit
然后通过Relay和GraphQL文档进行工作。但是有很多地方是无法解释和神秘的。
认真地,我到处都阅读了很多关于所有这些事情的文档,但是找不到以下问题的令人满意的解释:
这个是来做什么的?我记录了日志,但根本没有被调用:
var {nodeInterface, nodeField} = nodeDefinitions(
(globalId) => {
var {type, id} = fromGlobalId(globalId);
if (type === 'User') {
return getUser(id);
} else if (type === 'Widget') {
return getWidget(id);
} else {
return null;
}
},
(obj) => {
if (obj instanceof User) {
return userType;
} else if (obj instanceof Widget) {
return widgetType;
} else {
return null;
}
}
);
实际的效果是什么?
interfaces: [nodeInterface],
可能与此相关的是,该node
字段在做什么:
var queryType = new GraphQLObjectType({
name: 'Query',
fields: () => ({
node: nodeField,
// Add your own root fields here
viewer: {
type: userType,
resolve: () => getViewer(),
},
}),
});
id
球场上的魔术是什么?是globalIdField
为了什么
我的id
数据库中有一个,并认为可以在GraphQL对象中使用它:
代替:
id: globalIdField('User'),
我想使用我的数据库ID:
id: {
type: GraphQLID,
description: 'The identifier'
},
但是,如果这样做,浏览器会提示错误RelayQueryWriter: Could not find a type name for record '1'
。
我可以通过将其添加__typename
到组件容器“中继查询”中来消除该错误,但这似乎是错误的。
如果您可以在这里给出更深入的了解和更好的解释,并增强官方文档,那就太好了。
谢谢
将Node
根领域,在全球唯一的ID组合,进场时,继电器需要 重新获取
的对象。当您调用this.props.relay.forceFetch()
或为全局ID已知的对象的查询添加字段到查询中时,就会进行重新引用。
在这种情况下,Relay将短路常规查询并直接使用其全局ID和node
根调用对对象执行查询。
范例 :
假设$showComments
是false
,当该查询首次解决。
query {
viewer {
stories(first: 10) {
edges {
node {
id,
comments(first: 10) @include(if: $showComments) {
author,
commentText
}
text,
}
}
}
}
}
这将导致某些故事的获取,id
而text
现在已经知道了其ID。
想象一下,在将来的某个时间,变量$showComments
变为true
。中继将使用node
根字段仅重新获取所需的数据。
query {
node(id: "ABC123") {
fragment on Story { comments(first: 10) { author, commentText } }
}
node(id: "DEF456") {
fragment on Story { comments(first: 10) { author, commentText } }
}
node(id: "GHI789") {
fragment on Story { comments(first: 10) { author, commentText } }
}
...
}
这取决于几部分:
globalIdField
帮助程序执行此操作并生成base64编码的字符串)。nodeDefinitions
为了什么。nodeInterface
。另请参阅:https : //facebook.github.io/relay/docs/graphql-
object-
identification.html#content
本文向大家介绍IWebHostEnvironment接口在C#ASP.NET Core中起什么作用?,包括了IWebHostEnvironment接口在C#ASP.NET Core中起什么作用?的使用技巧和注意事项,需要的朋友参考一下 IWebHostEnvironment提供有关正在运行应用程序的Web托管环境的信息。 属于命名空间Microsoft.AspNetCore.Hosting IWe
更改历史 2018-02-01 胡小根 初始化文档 1 历史、现状和发展 1.1 历史 1.2 现状 1.3 发展 难点:预测发展方向。 1.4 概念 GraphQL和GraphiQL GraphQL是技术 GraphiQL是浏览器IDE,以使用接口 2 安装和使用 2.1 安装 2.2 使用 2.2.1 试一试 http://graphql.org/swapi-graph
问题内容: 我对此事仍然有些困惑。我到目前为止发现的是 (这里已经问过类似的问题,但我还有其他几点。) 接口是仅抽象方法和最终字段的集合。 Java中没有多重继承。 接口可以用于在Java中实现多重继承。 继承的一个强项是我们可以在派生类中使用基类的代码,而无需再次编写。可能这是继承在那里最重要的事情。 现在.. Q1。由于接口仅具有抽象方法(无代码),因此,如果我们实现任何接口,那么该如何继承呢
问题内容: 在日志记录框架中,有一个名为的特殊实例,但是我找不到有关其预期用途的任何文档。的文档只是说 返回名称为的全局记录器对象。 ,而仅记录为 是全局记录器的名称。 我相当广泛的搜索并没有找到更多有用的文档。 全局记录器打算用于什么?那是我错过的地方吗? 问题答案: 为方便随意使用Logging包的开发人员提供了“全局” Logger对象。认真使用日志记录包(例如在产品中)的开发人员应创建并使
我刚刚安装了node.js,还在环境变量中设置了PATH。路径值为 短期内 android命令正常工作。
问题内容: 什么是 全球声明 ?以及如何使用?我已经阅读了Python的官方定义; 但是,这对我来说没有多大意义。 问题答案: python中的每个“变量”都限于特定范围。python“文件”的范围是模块范围。考虑以下: 具有局部作用域的对象会在函数退出后立即死亡,并且永远无法检索(除非您拥有它们),但是在函数内,您可以访问模块级作用域(或任何包含的作用域)中的变量: 但是,您不能在该引用上使用赋