问题标签 [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 回答
83 浏览

relayjs - 仅手动中继现代运行 RefetchContainer

我仍然没有太多使用现代继电器的经验,并且正在尝试实施搜索。

为此,我使用“RefetchContainer”:

问题只是当您启动应用程序时查询已经执行,没有输入。

是否可以禁止自动查询并仅使用命令执行它this.props.relay.refetch

0 投票
1 回答
349 浏览

reactjs - 如何在 Relay Modern 中将 FragmentContainer 与 RefetchContainer 结合使用

我正在将一些中继类代码迁移到现代中继。现在我很难迁移分页实现。我正在使用页面和偏移方法。这是我现在拥有的:

游戏.jsx:

播放器.jsx:

我必须在 FragmentContainer 和 RefetchContainer 上做错了,它们应该被组合起来,但我不知道如何实现我想要的。有人可以启发我吗?

0 投票
1 回答
329 浏览

reactjs - QueryRenderer 之外的中继现代 FragmentContainer

可能吗?我们可以FragmentContainer在 QueryRenderer 之外使用吗?我想要实现的目标:我有RefetchContainer一个SectionList. 每个部分中的每个项目都是一个FragmentContainer. 当我从一个部分中选择一个项目时,我想打开一个新屏幕,在其中显示FlatList这些项目中的一个。我从SectionListon item select 传递的数据是一个FragmentContainer. 因此我看不到数据,所以我需要使用片段。如果我只在 中使用片段,FlatList我会从RelayFragmentContainer. 所以我添加了一个 QueryRenderer 作为父级FlatList,我再次请求相同的单个部分。但这提出了一个额外的QueryRenderer要求。我想显示上一个屏幕的数据。至少我将这个列表FragmentContainer作为 cacheConfig 传递并从fetchQuery方法但是,json 与响应 json 不同,因此它不是原始数据,而是已经__fragments,因此Relay无法解析它。

0 投票
0 回答
294 浏览

reactjs - 使用 Relay Modern 的 ag-Grid 无限滚动

我想使用 ag-Grid 的getRows功能实现无限滚动。successCallback此函数在从服务器获取数据时调用。我正在使用 Relay Modern,他们公开了一个loadMore从 GraphQL 服务器获取其他项目的函数。这里的问题是 Relay 会将新数据传递给我的组件的道具(在这种情况下是一个列表),我将无法让 ag-Grid 知道已获取的新数据是什么(通过传递新项目到successCallback)。

这里有没有人实现过类似的东西?

0 投票
2 回答
655 浏览

javascript - Relay-Modern FragmentContainer 数据未填充

我正在使用 Relay Modern 尝试将数据加载到FragmentContainer. 我正在使用熟悉的 Container (Smart) / Presenter (Dumb) 模式,并且数据没有按预期传递到我的子 Container 中。但是,如果我使用 Relay 的@relay(mask: false)指令来查看片段的数据是否被正确加载QueryRenderer那么片段数据就在那里

我不明白为什么没有将数据发送到我的容器。任何帮助深表感谢。

ScreenContainer.js(呈现QueryRenderer):

ScreenPresenter.js

最后,NestedFragmentContainer.js

此外,每当NestedFragmentContainer渲染时,我都会看到它的userprop 为undefined. 但是,console.log()说明它的值其实是null,而不是undefined

有谁知道为什么 FragmentContainer 没有用它的数据呈现?

0 投票
1 回答
574 浏览

reactjs - Relay Modern 与 Redux 集成

我已经达到了我必须处理react组件之间的客户端状态的情况,这意味着我需要将数据从子组件传递到父组件(找到相邻组件的解决方法)。

  1. 你认为 Relay Modern 的 Redux 实现是匹配的并且值得拥有多个商店吗?(或者这是一个好的实践?)
  2. 如果我更新后端并在需要时将数据返回到其他react组件(中继查询),这是一个最佳实践?(这种数据仅由当前用户需要,因此与应用程序上下文无关)

我想要一个抽屉,将过滤器全局应用于所有应用程序。

0 投票
1 回答
1353 浏览

javascript - 中继现代嵌套分页

我有一个根查询songs,它位于分页容器中。然后,我在歌曲上有一个嵌套属性,称为comments我也想分页,因为我不想一次为每首歌曲加载 10k 条评论。

歌曲容器.js:

评论容器.js

如何为评论编写 connectionConfig?我试过这个:

但是因为评论嵌套在歌曲上,所以它会抛出一个错误,指出查询在根目录上不存在。

0 投票
0 回答
73 浏览

environment - 有没有办法清除接力现代环境

基于此:https ://github.com/facebook/relay/blob/e5e07c3f12e5de1be584325498b94ed91a2580ec/docs/Modern-RelayEnvironment.md ,有没有办法清除中继的环境?

0 投票
0 回答
660 浏览

reactjs - 在 Relay 现代 fragmentContainer 中注入变量

我正在尝试将postId变量注入到 fragmentContainer 中。

我已经用with-relay-modern示例开始了这个项目。

变量 $postId 没有正确注入,所以我defaultValue: "UG9zdDoy"同时使用了,但目标是从 props 中获取 postId 的值。

页面 - singlePost.js

组件 - postDetail.js

知道如何实现这一目标吗?删除 **defaultValue: "UG9zdDoy" ** 并重新编译会出现以下错误:

RelayCompilerScope:未找到所需参数的值$postId: String!

0 投票
2 回答
1229 浏览

java - 使用 Relay Modern 和 GraphQL 上传文件

因此,我已经研究了两天,对 Java 的了解还不够,无法完全实现解决此问题的方法。在客户端,我找到了一些优秀的用户文档,并相信我有正确的部分,但是在处理服务器中的入站 multipart/formdata 时,我有点迷茫。

我的应用程序的基础是基于HowToGraphQL Java教程,因为我觉得他们在组织代码库方面做得很好,并且使事情变得非常简单易懂。不幸的是,文件上传不是他们涵盖的领域,并且根据 graphql-java 包的维护者,不存在直接支持此功能的计划

然而,这并不是说这是不可能的。GraphQL 规范旨在成为指导方针,社区如何选择调用规范取决于他们。许多人成功地结合了文件上传,尽管通常是通过包含自定义中间件

不幸的是,对我来说,障碍可能只是缺乏领域知识。我主要使用 JavaScript 和 Python 工作,并且主要有 Java 的学术经验。不完全确定从哪里开始,但我想我需要追踪我认为绑定到 SimpleGraphQLServlet 类的响应对象,并找到一种方法来提取入站文件对象。

希望获得更多专家建议或帮助提出解决方案。我还没有在 SO 上找到任何可靠的基于 Java 的片段来解决这个问题,因此解决这个问题可能会使其他尝试采用这个平台的人受益。

编辑:

可能找到了一种方法来做到这一点,但仍然没有制定出具体细节。在扩展 SimpleGraphQLServlet 类的 GraphQLEndpoint 类中,我们公开了 doPost() 方法。然而,提取数据最终会导致一系列错误,第一个错误是通过 @MultipartConfig 注释解决的,但是下一个错误让我再次停滞不前。“缺少 MultiPart 请求的内容。”

这个 doPost() 方法似乎是在发生突变后调用的,所以即使我设法提取了文件数据,似乎数据也会放在错误的位置。此外,我想知道丢失的内容是否是 Mutation 消耗帖子数据的结果,假设它甚至到达了。

然而,所有其他参数都完好无损,因此只需访问此文件即可。