You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React Relay删除突变后避免数组出现null值?

解决React Relay v15删除订单后数组出现null的问题

核心解决方案:在订单列表查询中添加@filter指令

当你用@deleteRecord标记订单为删除后,Relay默认不会自动从查询的数组里移除这个节点,只会把它置为null。要让数组自动过滤掉已删除的记录,只需要在你的OrdersQuery里给订单列表字段加上@filter(condition: "NODE_DELETED == false")指令:

修改前的查询示例:

query OrdersQuery {
  orders {
    id
    # 订单其他字段,比如amount、createTime等
  }
}

修改后的查询:

query OrdersQuery {
  orders @filter(condition: "NODE_DELETED == false") {
    id
    # 订单其他字段
  }
}

这样处理后,执行删除突变后,Relay会自动把标记为已删除的订单从data.orders数组里移除,数组只会保留有效的2个订单,不需要再做null检查。

额外说明

你的删除突变写法是正确的,@deleteRecord指令已经正确标记了对应订单为已删除状态,结合查询里的@filter就能实现自动过滤的效果,不需要额外修改突变逻辑。

内容的提问来源于stack exchange,提问作者michaelmsm89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:27:34