问题标签 [relaymodern]

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 回答
411 浏览

reactjs - 流式中继的createFragmentContainer

我几乎不知道如何流动类型中继的现代 createFragmentContainer。

我懂了:

relay是容器添加的道具。

组件以这种方式导出:

当我在其他一些组件中使用这个组件时(例如这样<Foo session={session} />),我会得到这个错误:

Flow: Cannot create 'Foo' element because property 'relay' is missing in props [1] but exists in 'Props' [2]

0 投票
0 回答
43 浏览

graphql-js - Graphcool RELAY 订阅:订阅边

对于上述查询出现错误:无法在地址列表类型上查询字段“边”。注意 AddressList 是每个地址到每个用户的映射。

0 投票
1 回答
286 浏览

graphql - 中继现代缓存与存储

通读中继文档,我对网络层(https://facebook.github.io/relay/docs/en/network-layer.html)与中继存储(https:// facebook.github.io/relay/docs/en/relay-store.html)。

这是两个不同的缓存吗?哪一个会自动获得 Relay 收集的垃圾?

0 投票
2 回答
337 浏览

relayjs - 在加载查询时从中继存储加载数据

我有一个通用的HeaderFooter它显示可能已经在中继存储中的PageComponent数据,以及期望来自“查询”的数据的主要数据,但我不想向用户显示完整的加载屏幕,我想显示页眉、页脚和加载屏幕或中间的内容。

因此,如您所知,如果我将所有内容都包装在 aQueryRenderer中,我将有两个选择:查询正在“加载”或数据可用:

假设我有一种方法可以手动从存储中检索数据(因为我们没有从存储中进行部分渲染之类的东西),并且我可以将该信息传递给公共Header,并且Footer在加载主查询时:

我发现既然我有环境,我可以做这样的事情来从商店获取信息:

但后来我有几个问题:

  • QueryRenderer 在卸载时处理数据 :cry: (尽管我从中读取的信息也应该由 Query 检索,但从存储中读取更像是查询返回时的后备)
  • 语法看起来很hacky
  • 我必须创建一个查询并编译它(无论如何我都可以忍受)

可能我以错误的方式解决问题,也许有人做了类似的事情,可以给我一些建议。(例如,如果没有任何效果,我的计划 B 是使用getDerivedStateFromProp将查询信息发送到自定义上下文并将其保存在那里以避免存储 GC 问题)。

TL:DR:我想在查询完成加载时从商店加载数据,然后使用从查询返回的数据。

有任何想法吗?如果有什么不清楚的地方请告诉我

0 投票
1 回答
82 浏览

graphql - 接力现代突变的动态反应

我有一个应用程序,它具有给定用户的多个配置文件。可以从应用程序的标题切换用户配置文件,以便可以从应用程序中的任何页面/路由进行切换。

因为切换可以发生在任何地方,我发现我需要为每个可能的页面检索片段,以便在突变成功后,无论哪个路由处于活动状态,页面都会更新。这既不是高性能的,也不是可扩展的。我当前的突变查询看起来像这样:

我可以为每个页面创建一个不同的突变查询,然后让突变函数根据路由查找查询……这似乎可行,但感觉很冗长,而且不是特别优雅。

有没有更简洁的方法可以动态指定我想要的片段?

0 投票
0 回答
157 浏览

relayjs - 将枚举作为变量传递给 Relay Qraphql 查询

在这个订阅查询中,我需要传递带有值的过滤器变量

但是 CREATED 是一个枚举,我如何将它作为过滤器变量传递

如果我在查询本身中硬编码,那么它的工作......例如下面的查询正在工作

我想在设置订阅时使用变量字段动态传递整个过滤器变量

在graphcool操场上它也不起作用,但是它接受我传递的查询变量

0 投票
1 回答
237 浏览

reactjs - Graphql:Typescript + Jest + Relay + Jest 似乎无法集成在一起

我正在测试使用 Typescript 和 Relay 构建的 React 应用程序。当我尝试测试继电器供电组件时,出现以下错误:

我关注 .babelrc 文件:

并遵循 Jest 配置:

我在这里错过了什么吗?

0 投票
0 回答
281 浏览

django - 一般 API 建议 - GraphQL 的 Apollo 还是 Relay Modern?

在我的项目的一个十字路口,我需要决定用我的前端 API 冒险前进的方式。

我使用的是 Django-GraphQL 后端,到目前为止是 React 前端。

我选择 React 是因为我是这种应用程序开发风格的新手,而且 React 似乎是我能找到的流行的最简单(阅读,对我来说最容易理解)实现的。

我知道想使用 Apollo 或 Relay Modern 将 GraphQl 数据提供给前端应用程序。

Relay Modern 似乎最有意义的是它的碎片选项和 graphene-django 中已经支持它的一些内置功能。

由于我在有限的时间内做这件事更多的是一种爱好,所以我需要明智地把时间花在学习上。在我深入任何一方的兔子洞之前,我想听听那些使用过任何一个/或/两个的人的一些建议/意见。

如果这是在我的道歉中发布此错误的论坛。

0 投票
1 回答
40 浏览

graphql - 从 commitMutation 的更新程序函数更新存储时出现问题

我有突变

我的更新程序功能如下。

这第一次工作得很好,但是所有先前添加的quoteLines 随之发生的突变都会更改为新的我假设这是因为newQuoteLine 一直指向同一个对象。

在更新程序函数的末尾添加以下行 unlink quoteLine from createQuoteLine 也不起作用。

非常感谢这方面的任何帮助。

0 投票
0 回答
367 浏览

reactjs - Refetch 容器重新获取,但不更新视图

我的应用程序看起来类似于下面的片段中包含的内容。

(我遗漏了很多实现细节,希望下面的代码足以解决我的问题)。

SampleApp.js

AppRefetchContainer.js

初始应用程序负载很好。单击其中一个标题应触发重新获取,以便可以根据传递的 inparams 对列表数据进行排序。当我触发重新获取时,服务器会以正确的数据进行响应,但是,组件不会重新呈现。

我怀疑我的问题在于我在这里定义片段的方式。我在初始页面加载时遇到的控制台错误是:

问题):

  1. 我不完全确定如何解释该错误。这是我无法重新渲染 UI 的原因吗?

  2. 我知道这种方法可能并不理想,但我如何refetch从不一定是查询片段的组件中获取?

很高兴提供任何澄清或缺失的上下文:)