问题标签 [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.

0 投票
1 回答
6755 浏览

javascript - GraphQL/Relay Schema“无法查询字段...”

我在查询 graphql/relay 中的某些字段时遇到问题。我正在尝试在下面的架构中查询 Courses 上的“courseName”字段。

如果我查询用户,例如:

{用户(id:1){名字,姓氏}}

它工作并返回正确的响应。

这是我的架构:

这是我的database.js:

当我尝试查询:

{ 用户 (id:1){courses{courseName}} }

它给了我错误:

“无法在‘CourseConnection’中查询字段‘courseName’”

好像是连接有问题。我也在用 cURL 测试这个查询。因为我想在移动到反应/中继之前测试架构。

我错过了什么?谢谢你。

0 投票
2 回答
1201 浏览

relayjs - 如何使用 Relay 发送临时查询?

我是 Relay 的新手,仍在努力解决它。根据我的理解,Relay 将查询与组件联系起来。这样,您可以说需要从 GraphQL 服务器提供组件 x、y 和 z。根据我的理解,官方react-relay库将在适当的时间发送这些查询,很可能是在组件即将被渲染的时候。

这一切对我来说都是直接的用例,例如简单地显示数据列表。

但是,我对如何做感到困惑的是,如何调度可能不完全属于与组件相关联的事物类别的查询。一种查询,例如尝试获取用户身份验证会话令牌或其他内容的查询。这是我目前的情况:我正在尝试创建一个从 GraphQL 获取会话令牌的用户登录表单。我有一个参数化的 GraphQL 字段,它需要用户名和密码参数,如果它们有效,将返回一个会话令牌。我只是不知道如何使用 Relay 来查询该会话令牌。

我基本上只需要发送一个查询并处理响应(将该会话令牌放入 React 应用程序状态)。

有任何想法吗?

0 投票
1 回答
2028 浏览

relayjs - @relay 的目的(模式:真)

在更改日志@relay(pattern: true)引入了新的表达式。relay.js 0.5

但是无法从描述中弄清楚,也无法测试它到底做了什么以及在编写时应该何时使用它fatQueries

一些例子会很有帮助。

0 投票
1 回答
531 浏览

relayjs - 如何使用 Relay 实现长轮询?

每 15 秒,我需要刷新一个中继容器上所有片段中的数据。有没有一种简单的方法可以做到这一点?

我试过relay.forceFetch({...})了,但出现了这个错误:

我的变量都没有改变,并且文档指出如果forceFetch交给一个空集,所有片段都将被重新获取。

我不确定“路径”在这里的错误警告是什么意思。

0 投票
1 回答
2052 浏览

reactjs - 如何在用 TypeScript (TSX) 编写的 React 应用程序中使用 Facebook Relay?

我想在React中编写一个新的 Web 应用程序,它使用RelayGraphQL服务器进行通信。最近为TypeScript引入了JSX 支持但是没有为 Relay指定类型声明文件 (.d.ts) 。如何在 TypeScript 中编写我的应用程序,而无需先为 Relay 编写类型文件?

0 投票
1 回答
380 浏览

reactjs - 如何累积单个请求的解析调用?

当 a访问我的服务器时,它会根据查询graphql request跳转到几个不同的位置。resolve functions但我不想有时用几十个小请求(基本上select每个resolve函数中的一个)来访问我的数据库。这不会很好地扩展。

有没有办法为单个 graphql 请求累积所有这些解析调用 - 以便最后我可以做一些魔术并只select为我的数据库构建一个然后解析所有承诺?

通过累积我在解析函数中返回的所有承诺,我可以看到一些自己构建东西的方法,但我不知道何时调用了单个请求的所有解析函数。

这个问题有解决方案吗?Facebook 如何应对这种情况?

谢谢

0 投票
0 回答
214 浏览

relayjs - 使用突变有效负载中的嵌套节点来更新本地存储

假设我有一个典型的 todo 应用程序。有一个CreateTodo突变,它接受一个字符串并返回CreateTodoPayload新创建的边缘。架构如下所示:

如何指定此突变将通过using更新user节点?要求我在有效负载上指定一个立即字段,因此我可以通过返回用户来使其工作,但这似乎与 Relay 试图完成的事情背道而驰。todoFIELDS_CHANGEfieldIDs

NODE_DELETE,RANGE_ADDRANGE_DELETE(即使此示例不使用连接)类似parentName,它是有效负载上字段名称的字符串,似乎无法指定嵌套字段,即todo.user.

0 投票
2 回答
917 浏览

relayjs - 共享中继节点接口

我想与多个 GraphQL 类型共享一个 nodeInterface。目前收到此错误:

我已经声明了这样的接口:

我错过了什么?我需要能够将多个 GraphQL 类型的声明分解为相应的文件并实现 nodeInterface ...

0 投票
3 回答
7394 浏览

javascript - 如何在 pageInfo 中将总数传递给客户端

我使用first afterandlast before来做分页。 hasNextPage并且hasPreviousPage非常有用。

但我也需要total count这样我才能计算并page 5 of 343 pages在客户端上显示。

不幸的是,pageInfo即使我在服务器站点上有信息,这也不是其中的一部分。

您能否像已经做的那样在和扩展中包含一个total字段以获取总数?pageInfoconnectionFromArrayarrayLengthconnectionFromArraySlice

谢谢

0 投票
1 回答
226 浏览

reactjs - 如何在连接中不使用光标进行导航

我有一个数组/表,可以说 10000 个项目。

现在我尝试在我的反应中继客户端中显示从索引 4000 到 4010 的项目。

但目前connectionArgs只允许使用 导航cursors,但我不想在到达项目 4000 之前翻页。

如何使用 GraphQL 查询导航到给定的偏移量?

谢谢