问题标签 [react-relay]

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

reactjs - 水合没有查询的中继片段

在我的应用程序的某些部分,我有一个使用片段的组件。但是在树的某个地方,我有时需要创建等待与服务器同步的临时对象(一旦它们将被转换为普通中继对象)。

但在那之前,它们只是组件树下传递的几个对象。createFragmentContainer+ some使这@relay(mask: false)一切成为可能。但我想使用useFragment.

Usefragment 根本不喜欢“假片段”数据。

有没有办法从不直接来自查询的数据中清晰地补充一个片段?

或者也许是另一种方式?

0 投票
0 回答
43 浏览

relayjs - 中继实现给出 401 作为响应

我试图 在一个反应​​项目中从中继一步一步的指南中实现中继概念。
尽管执行了步骤,但我的应用程序无法获取数据并且始终在屏幕上显示“正在加载”(三元错误)。
注意:我已经从 github 生成了个人访问令牌,保存在 github 项目的 .env.local 文件和
本地项目的 .env 文件下(我的 github 项目只有两个文件 .env.local 和 .readme)。
观察:当我执行'response'的console.log时,它会打印401。
无法通过第 2.3 步
我应该在 app.js(目前是 facefook)中更改存储库所有者,还是我错过了一些重要的东西。
评论:令人惊讶的是,当我从命令行使用 curl 时,它会给出数据。
curl -H “授权:承载 github_auth_token_here” https://api.github.com/graphql

fetchGraphQL.js 文件

app.js 文件

响应截图在这里...
console.log 截图

0 投票
0 回答
39 浏览

typescript - 中继编译器生成“未知”类型而不是“任何”

自从我们被困在 v2 以来,我们正在升级 Relay 的版本,到目前为止,我们已经能够升级到 v4,没有任何重大问题。但是,我确实运行relay-compiler(我也升级到 v4)来生成 graphql 生成的文件,我意识到所有旧any类型都变成了unknown. 查看更改说明和版本描述,我找不到任何对此的参考。

我怀疑@types/react-listor@types/relay-runtime甚至relay-compiler-language-typescript,但是在将两者都升级到 v4 之后,它仍然会发生。是我们这边的事情还是有什么需要修改的?

PS升级到v3这没有发生,所以它与v4有关

图片

0 投票
1 回答
95 浏览

reactjs - 如何编译 React-Relay

我正在尝试遵循官方的 Relay 文档

安装 React-Relay 后:

...并配置 package.json:

当我跑的时候:

我收到以下错误:

如何正确运行中继编译器?

0 投票
0 回答
47 浏览

reactjs - 使用 usePreloadedQuery 中继可选查询

假设您有这个用例:

一个带有一个输入和一个提交按钮的简单表单。

当输入值有效(>3 个字符)时,您想查询服务器以查看该值是否已在使用中。

当 A. 输入值 <4 字符 B. 输入值已在使用时(来自服务器的响应),应禁用该按钮

我试着用 usePreloadedQuery 来做

问题是应该始终可见的按钮将在查询被触发之前调用 usePreloadedQuery ,因此会因为 queryRef 为空而抛出。

我试着用 useLazyLoadQuery 来做

我尝试使用 useLazyLoadQuery 并设置{ fetchPolicy: value.length < 4 ? "store-only" : "network-or-store" },但它迫使我有一个更高的 Suspense 回退,这将使我的组件在每次按键超过 3 个字符时消失。

使用 Relay 实现这一目标的最佳方法是什么?

0 投票
1 回答
36 浏览

reactjs - React relay with NextJS: RelayContext: Expected `context.relay` to be an object compatible with the `RelayContext` interface, got `[object Object]`

我已经像这样设置了我的中继环境:

并获取数据:

我收到以下错误:

NextJS 11 和 Relay v6.0.0 正在发生这种情况。它在 v5.0.0 上运行良好。这些是相当旧的版本,但我正在尝试升级。

通过查看源代码,这表明 Relay 环境不是正确的格式,但我不明白这是怎么回事,因为我只是按照文档的初始化说明进行操作

有什么简单的我做错了吗?

0 投票
1 回答
103 浏览

reactjs - 中继 - usePreloadedQuery 挂钩在使用酶安装时暂停渲染

尝试对使用的组件进行单元测试时出现以下错误usePreloadedQuery

我有一个接收查询引用的父组件,它usePreloadedQuery用于检索数据,如下所示:

这里queryReference是通过调用来创建的loadQuery,它由一个内部钩子处理,这是一个用于中继资源react-resource-router的 包装器。useResource


我正在尝试使用 Jest 和 Enzyme 使用以下代码测试此组件:


根据文档测试中继组件

为了使usePreloadedQuery钩子不挂起,必须调用这些函数:

  • queueOperationResolver(resolver)
  • queuePendingOperation(query, variables)
  • preloadQuery(mockEnvironment, query, variables)使用相同的查询和变量传递给queuePendingOperation. preloadQuery必须在之后调用 queuePendingOperation

我正在执行前两个步骤,但我无法preloadQuery从导入react-relay,基于 github 源/流类型看起来它已被弃用/删除。所以我使用loadQuery的是

但它会抛出前面提到的错误。

从注释代码中可以看出,我也尝试<Suspense>按照错误中的建议使用,不幸的是它Error: Enzyme Internal Error: unknown node with tag 2抛出enzyme-adapter-react-16

0 投票
0 回答
49 浏览

react-native - Reactnative Signalwire 应用程序无法建立 Ice 服务器对等连接

我正在尝试在 react-native 应用程序中实现Signalwire调用。我在连接冰服务器时遇到问题。有时它可以连接并在两个人之间进行呼叫会成功。但大多数时候它会抛出错误

我尝试了很多搜索但无法成功。你能指导我如何解决这个问题吗?我正在使用以下iceservers:

我试图找到与我的 signalwire 帐户关联的 iceserver,但找不到,请指导我如何获取 ice/turn/stun 服务器 url 和凭据。我正在使用 Relay SDK 进行反应式

0 投票
1 回答
32 浏览

javascript - 在不传递 props 的情况下访问 Relay 状态

我现在正在学习 Relay,我想知道是否有一种无需传递道具即可访问状态的方法。我认为 Relay 使用了 React Context,但是,在所有示例中,它们似乎都在使用 props 来传递状态,而不是直接访问 Context 存储。是否可以通过上下文访问状态?如果是这样,它是否被认为是不好的做法?

我担心的是我会开始有很多道具被传递给组件。此外,在我的应用程序中,很难将 props 传递给某些组件。

0 投票
0 回答
148 浏览

typescript - 属性“响应”的类型不兼容。类型“未知”不可分配给类型“X”

我正在尝试将useQueryLoaderandusePreloadedQuery钩子react-relay与打字稿一起使用,但出现以下错误。该错误是特定于Typescript因为当我将文件类型更改jsx为代码时按预期工作。

总的来说,我正在查询地点列表并将其显示为卡片网格。父组件文件PlacesListTest.tsx包含以下代码。这被包裹在Suspense块中(未显示)。

的代码PlacesCardsList.tsx是:

这是PlacesListQuery.tsx文件

类型兼容性问题发生在queryRef.

还包括PlacesListQuery.graphql.ts下面生成的文件以显示response类型。

如何设置类型不是这样queryRef的?任何帮助,将不胜感激!responseunknown