问题标签 [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.
reactjs - 水合没有查询的中继片段
在我的应用程序的某些部分,我有一个使用片段的组件。但是在树的某个地方,我有时需要创建等待与服务器同步的临时对象(一旦它们将被转换为普通中继对象)。
但在那之前,它们只是组件树下传递的几个对象。createFragmentContainer
+ some使这@relay(mask: false)
一切成为可能。但我想使用useFragment
.
Usefragment 根本不喜欢“假片段”数据。
有没有办法从不直接来自查询的数据中清晰地补充一个片段?
或者也许是另一种方式?
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 文件
typescript - 中继编译器生成“未知”类型而不是“任何”
自从我们被困在 v2 以来,我们正在升级 Relay 的版本,到目前为止,我们已经能够升级到 v4,没有任何重大问题。但是,我确实运行relay-compiler
(我也升级到 v4)来生成 graphql 生成的文件,我意识到所有旧any
类型都变成了unknown
. 查看更改说明和版本描述,我找不到任何对此的参考。
我怀疑@types/react-list
or@types/relay-runtime
甚至relay-compiler-language-typescript
,但是在将两者都升级到 v4 之后,它仍然会发生。是我们这边的事情还是有什么需要修改的?
PS升级到v3这没有发生,所以它与v4有关
reactjs - 使用 usePreloadedQuery 中继可选查询
假设您有这个用例:
一个带有一个输入和一个提交按钮的简单表单。
当输入值有效(>3 个字符)时,您想查询服务器以查看该值是否已在使用中。
当 A. 输入值 <4 字符 B. 输入值已在使用时(来自服务器的响应),应禁用该按钮
我试着用 usePreloadedQuery 来做
问题是应该始终可见的按钮将在查询被触发之前调用 usePreloadedQuery ,因此会因为 queryRef 为空而抛出。
我试着用 useLazyLoadQuery 来做
我尝试使用 useLazyLoadQuery 并设置{ fetchPolicy: value.length < 4 ? "store-only" : "network-or-store" }
,但它迫使我有一个更高的 Suspense 回退,这将使我的组件在每次按键超过 3 个字符时消失。
使用 Relay 实现这一目标的最佳方法是什么?
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
react-native - Reactnative Signalwire 应用程序无法建立 Ice 服务器对等连接
我正在尝试在 react-native 应用程序中实现Signalwire调用。我在连接冰服务器时遇到问题。有时它可以连接并在两个人之间进行呼叫会成功。但大多数时候它会抛出错误
我尝试了很多搜索但无法成功。你能指导我如何解决这个问题吗?我正在使用以下iceservers:
我试图找到与我的 signalwire 帐户关联的 iceserver,但找不到,请指导我如何获取 ice/turn/stun 服务器 url 和凭据。我正在使用 Relay SDK 进行反应式
javascript - 在不传递 props 的情况下访问 Relay 状态
我现在正在学习 Relay,我想知道是否有一种无需传递道具即可访问状态的方法。我认为 Relay 使用了 React Context,但是,在所有示例中,它们似乎都在使用 props 来传递状态,而不是直接访问 Context 存储。是否可以通过上下文访问状态?如果是这样,它是否被认为是不好的做法?
我担心的是我会开始有很多道具被传递给组件。此外,在我的应用程序中,很难将 props 传递给某些组件。
typescript - 属性“响应”的类型不兼容。类型“未知”不可分配给类型“X”
我正在尝试将useQueryLoader
andusePreloadedQuery
钩子react-relay
与打字稿一起使用,但出现以下错误。该错误是特定于Typescript
因为当我将文件类型更改jsx
为代码时按预期工作。
总的来说,我正在查询地点列表并将其显示为卡片网格。父组件文件PlacesListTest.tsx
包含以下代码。这被包裹在Suspense
块中(未显示)。
的代码PlacesCardsList.tsx
是:
这是PlacesListQuery.tsx
文件
类型兼容性问题发生在queryRef
.
还包括PlacesListQuery.graphql.ts
下面生成的文件以显示response
类型。
如何设置类型不是这样queryRef
的?任何帮助,将不胜感激!response
unknown