问题标签 [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 投票
3 回答
65 浏览

javascript - 函数未传递给按钮的原因是什么

我知道 JavaScript 的作用域,但我可能不完全理解它们,因为这段代码不起作用。

此代码使用 React 和 Relay Modern 框架。

有 2 个按钮,第一个在内部queryRender传递到 Relay Modern QueryRenderer,第二个在之后传递(参见功能render)。第二个正在工作,第一个不执行该clickTest功能。(这是实际代码的简化版本)

query变量已定义,我只是没有将其包含在该摘录中。

当我用匿名函数替换第一个按钮的 onClick 函数时

然后我得到这样的错误: Uncaught TypeError: _this2.clickTest is not a function

谁能向我解释为什么这段代码的行为方式如此?

0 投票
0 回答
96 浏览

mongodb - GraphQL 上的 Relay Modern 询问查询中的空响应

也许已经成功通过这一步的人愿意提供一些指示。

我有一个模式,一个解析器,我请求查询并且我有一个空响应。请你能帮忙讨论一下主题吗?

查询请求如下所示:

我的架构如下所示:

PS:这个语言架构是根据graphql-tools包做的。

解析器:

0 投票
1 回答
336 浏览

reactjs - 中继存储更新程序不工作

我试图对突变进行更新,但它运行不正常,它告诉我“setValue 不是函数”,当在 newEvent 和 relayEvent 上执行 console.log 时,它会向我返回正确的数据请帮帮我!

我的突变在工作,但不知何故数据没有被更新,所以我需要做一个不工作的更新程序

这是我的代码:

0 投票
1 回答
1096 浏览

javascript - 为什么 Relay Modern QueryRenderer 渲染道具未定义?

这是我第一次尝试使用 Relay Modern。从PostgraphQL GraphQL Server. 它正在成功获取数据但未传递给渲染函数:

仅呈现“正在加载...”。

我猜是因为它成功获取了 graphql 服务器和环境正常的数据。

我没有使用 React 16,该项目也使用 Redux。

关于为什么relayProps 没有值(例如relayProps.user)的任何建议?

另一件事可能会有所帮助,环境(文件)位于主应用程序中,QueryRenderer并且组件位于导入的 npm 包中(将在多个应用程序之间共享)。如前所述,查询似乎工作正常,所以我认为这不是问题。我还在包上运行中继编译器,但不是在主应用程序上运行,因为那里没有中继组件。

以防万一需要使用以下方法设置环境:

0 投票
0 回答
313 浏览

reactjs - 如何在 Relay Modern 中传递动态参数?

我在 Relay-Modern 中有特定要求将当前日期作为参数传递。据我了解,这在 Relay-Modern 中是不可能的,因为我们不能在 initialVariables(是 Relay Classic Api 的一部分)中编写任何代码,因为这一步现在转移到构建时间。所以我在父级别使用 QueryRenderer 在挂载时将变量向下传递给组件。当我将这种方法用于 1 个组件时效果很好。但是现在我遇到了另一个问题,其中我有两个组件显示相同的数据但使用不同的变量。

当前小部件

根据当前时间显示 10 条记录

延迟小部件

显示 20 条记录开始 currentTime - 30 分钟

两个组件可以有共同的数据。

当我在父级别声明自己的变量时,它在编译时失败:

Expected all fields on the same parent with the name or alias events to have the same name and arguments

在 Relay-Modern 中解决这些问题的正确方法是什么?

PS:我知道这样做是为了在组件或父级别中获取大数据集,然后在 JS 中使用逻辑来过滤和显示在 UI 上。

0 投票
2 回答
688 浏览

react-native - 中继订阅不适用于 react-native

我正在使用带有 react native 和 Relay 的 Express Graphql 服务器。我的设备确实连接到订阅,但它没有订阅它。这是我在服务器上的 index.js

服务器上订阅的解析器,由于每个人都在使用来自 apolloGraphql 的可执行模式,因此很难弄清楚。

现在是 react-native 客户端。我的订阅设置与中继环境。

我的订阅方式,

我调用订阅的组件,

当设备启动应用程序时,我的设备连接到 Web 套接字,因为我可以在 SubscriptionServer 的 onConnect 方法中看到 console.log 语句。但是当负载在突变后发布时,订阅方法不会被调用。我似乎无法弄清楚我做错了什么。也许这是我缺少的一些 react-native 特定配置,因为当我在 graphiql 上测试它时,一切似乎都运行良好。我找不到与 express graphql 一起使用的 react-native 和中继订阅的任何示例。

注意:当我将订阅与 graphiql 一起使用时,一切正常。但不适用于 react-native 和中继。

提前谢谢各位....

0 投票
1 回答
245 浏览

javascript - BabelPluginRelay:预期插件上下文包含“类型”,但在从 1.1.0 升级到 1.4.1 时得到:[object Object]。为什么?

我有一个完美运行的中继现代应用程序,它带有 1.1.0 babel-plugin-relay + react-relay + react-compiler + graphql 0.10.x,react 15.5.x,但是自从将它们全部升级到 1.4.1 和 graphql 到 0.11。 7 并响应 16.0.0 我在运行 npm start 时不断收到此错误:

像这样使用 babel-plugin-relay:babelRelayPlugin.js:

和 webpack.config.js:

问题是为什么?以及我该如何解决?因为在响应中我可以清楚地看到类型:

可以在这里查看继电器类型

0 投票
2 回答
370 浏览

relayjs - 是否可以使用 Relay Modern 命令式变异 API 取消链接记录?

我想编写一个突变updater,将链接的记录与另一条记录取消链接。

例如,假设我的商店中有以下物品:

我正在寻找一种方法来取消userclient:root. user是一个可为空的字段。我希望对该user领域感兴趣的订阅者看到它已经消失null

现在我看到取消链接此字段的唯一方法是从商店中删除节点。我尝试使用将链接设置为空,setLinkedRecord但这会引发错误。

0 投票
2 回答
528 浏览

reactjs - ReactJS Relay Modern:选择哪个路由器?

我正在使用 ReactJs 构建一个大型 SaaS CRUD 应用程序。整个应用程序都有一个经典的导航需求,就像每个对象的以下模式:

对于每种类型的对象,您可以随后列出或创建一个新对象。在列表中,您可以查看详细信息、编辑或删除项目。该应用程序将有一个顶部导航菜单,您可以将您移动到所选的对象类型列表。

就 Relay 而言,每个对象类型都会保存它的查询。详细信息视图将与查询片段一起使用。

似乎一个简单的路由器就足够了,但我不想开始使用旧的东西或不推荐使用的代码。

据我了解,Relay Modern 无法与 React Router V4 一起使用,尽管我已经看到有关如何将 React Router V4 与 Relay Modern 一起使用的问题。所以:

a) 我可以将 RRV4 用于该类型的应用程序吗?我会有问题吗?

b) 如果没有,我应该选择 RRV3 还是 Found ?推荐哪一个?

0 投票
1 回答
339 浏览

javascript - 如何在 Relay Modern 中使用静态数据设置本地存储

我正在构建一个 React 应用程序,它从服务器获取数据并根据用户从下拉菜单中的选择将静态数据传递给各种组件。我想使用 Relay Modern,但我在文档中找不到任何关于它是否支持手动将静态数据加载到商店的信息。任何人都知道这是否可能/如何实施?

顺便说一句,我在这里和其他地方看到了一些类似的问题。但是,这些似乎与接力经典有关,而不是与现代接力有关,后者实施了巨大的变化。