是否可以使用 Relay Modern 命令式突变 API 取消链接记录?

     2023-03-08     184

关键词:

【中文标题】是否可以使用 Relay Modern 命令式突变 API 取消链接记录?【英文标题】:Is it possible to unlink a linked record using the Relay Modern imperative mutation API? 【发布时间】:2018-04-02 06:12:36 【问题描述】:

我想编写一个突变updater,将链接的记录与另一条记录取消链接。

例如,假设我的商店中有以下物品:

client:root 
  user: __ref: "someid"

我正在寻找一种方法来取消链接 userclient:rootuser 是一个可为空的字段。我希望对 user 字段感兴趣的订阅者看到它已经消失了 null

现在我看到取消链接此字段的唯一方法是从商店中删除节点。我尝试使用setLinkedRecord 将链接设置为null,但这会引发错误。

【问题讨论】:

你试过setValue 吗? facebook.github.io/relay/docs/… 是的,设置null 会导致错误。 您遇到了什么错误? 那个值不能是null 需要确切的错误信息进行调查 【参考方案1】:

.setLinkedRecored() 期望第一个参数是RecordProxy 的实例。使用.setValue() 取消链接节点,如whitep4nther commented above。

store.getRoot().setValue(undefined, 'user');

【讨论】:

嘿,感谢您添加此答案。当他离开@whitep4nther 的cmets 时,我一定误读了它们,因为您所说的很有道理。下次有机会时,我会尝试一下并投票/接受。 这不起作用。使用 undefinedsetValue() 设置链接字段不会改变商店。 这很奇怪。在我的用例中,在 commitLocalUpdate 回调中设置 nullundefined 没有任何问题。 是的,设置它null 有效。但随后记录被链接,只是空 我添加了一个示例应用程序,用于简单演示取消链接记录。 github.com/smagch/relay-example-unlinking-records 你可以看到工作示例:smagch.github.io/relay-example-unlinking-records【参考方案2】:

我也只是在与这个问题作斗争,在挖掘了中继代码库之后,我认为现在没有合适的方法来解决这个问题。我有opened an issue here。

【讨论】:

如何处理 Relay Modern 上的突变错误?

...时间】:2018-04-0823:46:51【问题描述】:我正在为我的客户使用ReactJS和Relay。考虑以下突变:importcommitMutation,graphqlfrom\'react-relay\';importenvironmentfrom\'../../../../envir 查看详情

是否可以从 Relay 突变访问 GraphQL 验证错误?

】是否可以从Relay突变访问GraphQL验证错误?【英文标题】:IsitpossibletoaccessingGraphQLvalidationerrorsfromaRelaymutation?【发布时间】:2020-10-1512:28:15【问题描述】:我对GraphQL有点陌生,所以,我仍然在脑海中将所有活动部分拼凑在一起。... 查看详情

我可以使用 GraphQL/Relay 查询来修改数据而无需获取

...STPOST、GET和PUT协议中那样找到突变与查询的正式定义。我是否正确,当希 查看详情

使用 Relay Modern 创建-react-native-app / expo

...layModern【发布时间】:2017-10-2114:12:50【问题描述】:我们可以在Expo中使用RelayModern吗?在https://docs.expo.io/versions/v17.0.0/guides/using-graphql.html的文档中,只提到了Ap 查看详情

如何在 TypeScript 中使用 Relay Modern(babel-plugin-relay 和 relay-compiler)?

】如何在TypeScript中使用RelayModern(babel-plugin-relay和relay-compiler)?【英文标题】:HowtouseRelayModern(babel-plugin-relayandrelay-compiler)withTypeScript?【发布时间】:2017-10-1516:38:16【问题描述】:使用TypeScript时,babel-plugin-relay和relay-compile 查看详情

Relay Modern-React Native 集成的资源

...【发布时间】:2017-09-3013:51:08【问题描述】:我只是好奇是否存在任何好的资源来展示如何将现代中继与ReactNative结合使用。我在这里和那里发现了一些带有react的sn-ps,但它们与reactnative设置并不完全一致。Apollo有很棒的文档,... 查看详情

在 Relay Modern 中使用订阅时,“更新程序”无法正常工作

】在RelayModern中使用订阅时,“更新程序”无法正常工作【英文标题】:`updater`notworkingcorrectlywhenusingsubscriptionsinRelayModern【发布时间】:2017-11-2620:42:52【问题描述】:我在我的应用程序中使用RelayModern,并已使用requestSubscription函... 查看详情

Relay Modern - 如何在没有 fragmentContainer 的情况下使用 fetchQuery

】RelayModern-如何在没有fragmentContainer的情况下使用fetchQuery【英文标题】:RelayModern-HowtousefetchQuerywithoutfragmentContainer【发布时间】:2017-11-1503:30:02【问题描述】:所以我正在为React应用程序与服务器端渲染进行中继。我正在尝试使... 查看详情

错误:“突变”类型上的未知字段“讨论”。使用 Relay 和 React `useMutation` 钩子

...了一个在互联网上找不到任何解决方法的问题。希望有人可以在这里帮助我:)。我已按照Rela 查看详情

Relay 使用啥来决定将哪些 outputFields 包含在突变响应中?

】Relay使用啥来决定将哪些outputFields包含在突变响应中?【英文标题】:WhatdoesRelayusetodecidewhichoutputFieldstoincludeinamutationresponse?Relay使用什么来决定将哪些outputFields包含在突变响应中?【发布时间】:2015-12-1209:24:55【问题描述】:... 查看详情

使用中继环境的突变

】使用中继环境的突变【英文标题】:MutationsusingRelayEnvironment【发布时间】:2016-12-1017:23:17【问题描述】:我在ReactNative中使用Relay,但在登录和注销时出现问题。登录或注销后,Relay会保留前一个用户的存储。为了解决这个问题... 查看详情

中继项目中的更新突变问题

...会保存从args接收到的数据。我使用console.log(args)检查数据是否进入up 查看详情

在 Relay Modern 中设置多个网络层

...Modern【发布时间】:2018-08-3014:31:41【问题描述】:我正在使用带有现代继电器的react-native应用程序。目前我们应用的fetchQuery实现,只是在网络上进行fetch(就像在https://facebook.github.io/relay/docs/en/network-l 查看详情

为啥 Relay Modern QueryRenderer 渲染道具未定义?

...时间】:2018-03-2703:17:46【问题描述】:这是我第一次尝试使用RelayModern。从PostgraphQLGraphQLServer获取特定用户。它正在成功获 查看详情

在创建模型的 GraphQL/Relay 突变中,有没有办法取回模型 ID?

...在一个新项目中使用Relay和GraphQL。我们有一个Relay突变,可以在数据库中创建一个新模型:exportdefaultclassA 查看详情

如何订阅relay/graphql突变的进度事件

...tation【发布时间】:2017-02-2711:08:01【问题描述】:我也想使用突变来上传文件,但是我找不到任何方法来跟踪突变的进度(它的上传,类似于XMLHttpRequest进度事件)。Afaik中继正在使用fetch,但fetch没有提供任何跟踪进度的方法(htt... 查看详情

React Relay:复杂的突变脂肪查询

...【问题描述】:我正在创建一个投票应用程序,其中包含可以投票的投票。我目前正忙于投票(本质上是创建投票)。我的架构:(长话短说:民意调查可以从主商店访问,但观众的投票和投票可以由他直接访问(作为字段)。... 查看详情

Relay Modern:在optimisticUpdater中删除记录

...述】:在我的应用程序中,我有一个mutation,我想在其中使用optimisticUpdater在服务器响应之前更新视图。为此,我需要将列表中的一些记录删除到中继存储中,如下所示:optimisticUpda 查看详情