#5364·relay

错误 属性变化变换有效载荷形状, 防止中继@ prependNode 正确更新连接

作者: wiaanstackworx创建于 2026年7月20日更新于 2026年7月20日

大家好,你们好

首先,如果这是错误的存放处,请道歉。 我不确定这是属于这里还是热巧克力仓库

我找不到一个现有的GitHub问题来描述这个情景,虽然完全有可能我漏掉了一些东西,或者我错误地使用了框架.

-- -- . . .

环境 热巧克力 - 15.1.14' 反应 — 18.1.0' 反应-中继 — 16.2.0' 中继运行时间 - 16.2.0'

-- -- . . .

□我试图实现

我有一个页面, 显示使用中继连接和 MUI DataGrid 的项目列表 。

用户可以从模式对话框创建新项目 。 模式执行中继变异, 我使用中继的 声明变异指令 节点 `这样新创建的节点就自动被插入到现有的中继连接中.

DataGrid 本身没有本地状态, 它只是让 Relay 商店中的任何存在都存在 。

计划流量为:

  • 母组件装入中继连接。
  • 父母通过这个连接来制作MUI DataGrid.
  • 父母将中继连接ID(` id')传递为一种模式。
  • 模式执行变异。
  • 将新建的节点连接到连接中。
  • 中继商店更新。 曰父母复还.
  • DataGrid立即显示新行.

在介绍"热巧克力""错误属性"之前,这很有效.

-- -- . . .

  • 相关执行

  • 父母部分

父拥有中继查询和中继连接.

图像ql 项目 @ connection(关键:"ProjectList items") { 编号

边缘{ 节点{ 编号 名称 数值 启用 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

中继连接ID被传递到模式中.


< 创建项目模块
连接Id=data. items?. id? ""
/ > 打开

DataGrid行直接取自中继连接.

相接行 = react.useMemo ()() {{{ 返回数据。 items? 编号:节点?.id, 名称:节点?.name, 值:节点?.值; 启用:节点?. ·) *,[数据.items?.edges]);


DataGrid只是制作这些行.


< 数据GridPro
排队?
获得RowId( row) QQ行. id]
/ > 打开

没有额外的React状态或手动的Relay商店操作.

-- -- . . .

  • 模块组件

该模式接收了中继连接ID.

接口道具{ 连接ID: 字符串; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


提交突变时,连接ID被传递给中继.


承诺混合( {
变量 :{
输入 :{
. . . . . . . .
{\fn华文楷体\fs16\1cHE0E0E0}
连接: [连接] id] (英语).
{\fn华文楷体\fs16\1cHE0E0E0}
* ;

-- -- . . .

工作变异

没有"错误属性",我的突变看起来是这样:

图像ql 突变创建项目混合( M) 美元输入: 创建项目输入 ! $连通: [ID!]! ) (中文(简体) ). 创建项目( 输入: 美元输入) @ prependNode () (帮助) 连接: $连接 边缘类型Name : “ 项目缩写 ” ) (中文(简体) ). 编号 名称 数值 启用 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

. . . . . . .