问题标签 [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.
graphql - 如何将初始变量传递给 createPaginationContainer
我正在尝试使用createPaginationContainer
一些变量,这是我的代码示例:
在父组件中,我像这样传递我的变量:
现在,在我重新获取之前,我在 getFragmentVariables 或 getVariables 中的日志都没有显示。如何将变量传递给createPaginationContainer
初始请求?
graphql - 我应该尽量减少中继应用程序中的订阅数量吗?
我是使用 graphql 的新手,我们已经使用 elixir 构建了一个后端 graphql 服务器,我们正在使用 react 和 react-relay 构建一个前端应用程序。
我的问题是,在我的查询渲染器的根目录下拥有一个大型订阅是否更好,而不是为单个组件拥有大量较小的订阅。我认为我更喜欢使用大量较小的订阅,而不是更少(甚至一个)非常大的订阅,但有人担心订阅过多会非常沉重。这是有效的吗?
TIA
graphql - 重置分页以重新获取拉动时的默认变量以刷新抛出光标警告?
我的平面清单上有这个道具:
这就是我初始化分页的方式:
这是警告:
警告:中继:光标 `` 后出现意外,必须从列表末尾获取边(YXJyYXljb25uZWN0aW9uOjc=)。
您在 argumentDefinitions 上看到 categoriesCount 的默认值是 4, categoriesCursor 是“”,我认为中继认为我正在重用已经获取的变量,但我想要做的是让分页“忘记它的当前边缘”并像开始拉刷新?
reactjs - 使用分页容器和加载的无限滚动继电器现代(v11)更多
使用 react 17 和 relay-modern 11 我想建立一个列表,当一个人到达终点时,他们可以点击一个按钮,上面写着加载更多,它会在列表中添加更多条目。这是我到目前为止所拥有的。行是名称和游标
看到我应该点击加载更多,它应该添加额外的 5 行数据。当我单击加载更多时会发生这种情况
看到它确实获取了 5 个新节点。我可以说是因为游标是独一无二的。但是它并没有像我想要的那样将它附加到列表中。
当我不断单击加载更多,直到没有更多数据时,如何让这个列表一直持续构建?
这是我的代码:
组件的根:
这是应该列出对象的组件
我从https://github.com/facebook/relay/issues/1705获得了这种方法的灵感
注意:我尝试使用@stream_connection,但后端的 Elixir Absinthe 似乎不支持它。
我知道这很长,所以请任何帮助表示赞赏:)
javascript - 使用 react-relay 测试时组件未呈现
我正在尝试使用 React Relay 和 React 测试库测试组件
然而,该测试不会使用模拟数据加载组件,而只会返回 Suspense 回退
graphql - 从中继 11 在 useRefetchableFragment 挂钩上调用 refetch(...) 时出错
我正在从relay 10
to迁移,relay 11
并且在调用refetch
from时遇到奇怪的错误useRefetchableFragment
。这是我的组件:
然后我单击按钮,它重新获取 graphql 查询但也抛出一个错误:
react_devtools_backend.js:2430 警告:中继:意外调用的
refetch
优先级高于. 看起来您尝试在高优先级更新下调用,但可能导致组件挂起的更新应该以正常优先级安排。确保你是从钩子里面打电话的。EditClient_refetch_client
useRefetchableFragment()
refetch
refetch
startTransition()
useSuspenseTransition()
什么是 ahigh priority update
以及如何将onClick
事件放到normal priority
? 中继文档没有说明如何调用refetch
函数。
如果我将refetch
call 放入setTimeout
回调中,我不会收到任何错误,但这感觉不对。
graphql - 为片段返回未定义的中继流类型
我有这些组件设置:RequestLayout > RequestComposer > RequestMessageOptions > LegalSenderDropdown
请求布局.jsx:
RequestComposer.jsx:
RequestMessageOptions.jsx 刚刚将请求传递给 LegalSenderDropdown.jsx:
无法获取
request.counterNoticeModule
,因为[1].Flow(prop-missing) LegalSenderDropdown.jsx(20, 3): [1]counterNoticeModule
中缺少 属性RequestComposer_request
RequestComposer_request
当我查看其他 RequestComposer_request 类型时,我得到了编译器生成的这个: