问题标签 [relayjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - GraphQL/Relay Schema“无法查询字段...”
我在查询 graphql/relay 中的某些字段时遇到问题。我正在尝试在下面的架构中查询 Courses 上的“courseName”字段。
如果我查询用户,例如:
{用户(id:1){名字,姓氏}}
它工作并返回正确的响应。
这是我的架构:
这是我的database.js:
当我尝试查询:
{ 用户 (id:1){courses{courseName}} }
它给了我错误:
“无法在‘CourseConnection’中查询字段‘courseName’”
好像是连接有问题。我也在用 cURL 测试这个查询。因为我想在移动到反应/中继之前测试架构。
我错过了什么?谢谢你。
relayjs - 如何使用 Relay 发送临时查询?
我是 Relay 的新手,仍在努力解决它。根据我的理解,Relay 将查询与组件联系起来。这样,您可以说需要从 GraphQL 服务器提供组件 x、y 和 z。根据我的理解,官方react-relay
库将在适当的时间发送这些查询,很可能是在组件即将被渲染的时候。
这一切对我来说都是直接的用例,例如简单地显示数据列表。
但是,我对如何做感到困惑的是,如何调度可能不完全属于与组件相关联的事物类别的查询。一种查询,例如尝试获取用户身份验证会话令牌或其他内容的查询。这是我目前的情况:我正在尝试创建一个从 GraphQL 获取会话令牌的用户登录表单。我有一个参数化的 GraphQL 字段,它需要用户名和密码参数,如果它们有效,将返回一个会话令牌。我只是不知道如何使用 Relay 来查询该会话令牌。
我基本上只需要发送一个查询并处理响应(将该会话令牌放入 React 应用程序状态)。
有任何想法吗?
relayjs - @relay 的目的(模式:真)
在更改日志中@relay(pattern: true)
引入了新的表达式。relay.js
0.5
但是无法从描述中弄清楚,也无法测试它到底做了什么以及在编写时应该何时使用它fatQueries
。
一些例子会很有帮助。
relayjs - 如何使用 Relay 实现长轮询?
每 15 秒,我需要刷新一个中继容器上所有片段中的数据。有没有一种简单的方法可以做到这一点?
我试过relay.forceFetch({...})
了,但出现了这个错误:
我的变量都没有改变,并且文档指出如果forceFetch
交给一个空集,所有片段都将被重新获取。
我不确定“路径”在这里的错误警告是什么意思。
reactjs - 如何在用 TypeScript (TSX) 编写的 React 应用程序中使用 Facebook Relay?
我想在React中编写一个新的 Web 应用程序,它使用Relay与GraphQL服务器进行通信。最近为TypeScript引入了JSX 支持。但是没有为 Relay指定类型声明文件 (.d.ts) 。如何在 TypeScript 中编写我的应用程序,而无需先为 Relay 编写类型文件?
reactjs - 如何累积单个请求的解析调用?
当 a访问我的服务器时,它会根据查询graphql request
跳转到几个不同的位置。resolve functions
但我不想有时用几十个小请求(基本上select
每个resolve
函数中的一个)来访问我的数据库。这不会很好地扩展。
有没有办法为单个 graphql 请求累积所有这些解析调用 - 以便最后我可以做一些魔术并只select
为我的数据库构建一个然后解析所有承诺?
通过累积我在解析函数中返回的所有承诺,我可以看到一些自己构建东西的方法,但我不知道何时调用了单个请求的所有解析函数。
这个问题有解决方案吗?Facebook 如何应对这种情况?
谢谢
relayjs - 使用突变有效负载中的嵌套节点来更新本地存储
假设我有一个典型的 todo 应用程序。有一个CreateTodo
突变,它接受一个字符串并返回CreateTodoPayload
新创建的边缘。架构如下所示:
如何指定此突变将通过using更新user
节点?要求我在有效负载上指定一个立即字段,因此我可以通过返回用户来使其工作,但这似乎与 Relay 试图完成的事情背道而驰。todo
FIELDS_CHANGE
fieldIDs
与NODE_DELETE
,RANGE_ADD
和RANGE_DELETE
(即使此示例不使用连接)类似parentName
,它是有效负载上字段名称的字符串,似乎无法指定嵌套字段,即todo.user
.
relayjs - 共享中继节点接口
我想与多个 GraphQL 类型共享一个 nodeInterface。目前收到此错误:
我已经声明了这样的接口:
我错过了什么?我需要能够将多个 GraphQL 类型的声明分解为相应的文件并实现 nodeInterface ...
javascript - 如何在 pageInfo 中将总数传递给客户端
我使用first
after
andlast
before
来做分页。
hasNextPage
并且hasPreviousPage
非常有用。
但我也需要total count
这样我才能计算并page 5 of 343 pages
在客户端上显示。
不幸的是,pageInfo
即使我在服务器站点上有信息,这也不是其中的一部分。
您能否像已经做的那样在和扩展中包含一个total
字段以获取总数?pageInfo
connectionFromArray
arrayLength
connectionFromArraySlice
谢谢
reactjs - 如何在连接中不使用光标进行导航
我有一个数组/表,可以说 10000 个项目。
现在我尝试在我的反应中继客户端中显示从索引 4000 到 4010 的项目。
但目前connectionArgs
只允许使用 导航cursors
,但我不想在到达项目 4000 之前翻页。
如何使用 GraphQL 查询导航到给定的偏移量?
谢谢