中继突变。脂肪查询。询问 REQUIRED_CHILDREN 中的所有字段

Posted

技术标签:

【中文标题】中继突变。脂肪查询。询问 REQUIRED_CHILDREN 中的所有字段【英文标题】:Relay mutation. FatQuery. Ask all fields in REQUIRED_CHILDREN 【发布时间】:2016-12-30 11:12:54 【问题描述】:

我的问题是:我有一个突变配置,其中我有一个带有子查询数组的 REQUIRE_CHILDREN 配置。如何从有效负载对象中获取所有可能的字段?


 type: 'REQUIRED_CHILDREN',
 children: [
  Relay.QL`
   fragment on MyPayload 
     me 
       id
       ...others field
     
   `]

那么我如何从me 对象中询问所有可能的字段?如果我只指向fragment on MePayload me 对象中继仍然返回我me id 。我希望中继返回me 对象中的所有字段。谢谢。

【问题讨论】:

【参考方案1】:

您不能 - 您的客户端代码需要明确指定您要获取的所有字段。然后这些字段由babel-relay-plugin 等进行静态验证。

顺便说一句,您可能也不想使用REQUIRED_CHILDREN。这仅对获取在突变的onSuccess 回调中可访问的字段有用,因此永远不会写入中继存储并且中继容器可以访问...

【讨论】:

问题是我想向我的服务器发送一个请求并取回一些数据(不是通过中继)。例如:我有一个朋友表单,并且我有一个用于从中获取初始变量的端点。所以我的流程是:我向服务器发送一个请求,并为我的表单获取初始数据,然后我需要调度该数据(用于进入我的组件)。那么如何从const initialData = await MyMytation(); 获取完整数据? 如果“端点”是指用于获取初始数据的非 GraphQL 端点,您可以随心所欲地获取该信息(在此处插入收藏夹 ajax-library-here)。然后只需将其填充到您的表单中并将这些变量提供给您的突变等。 如果“端点”是指您的 GraphQL 架构中有某种“草稿表单数据”,您可以像在 Relay 中获取任何其他 GraphQL 数据一样获取该数据:用片段创建一个容器,将该容器嵌套在 Route 下,等等。

以上是关于中继突变。脂肪查询。询问 REQUIRED_CHILDREN 中的所有字段的主要内容,如果未能解决你的问题,请参考以下文章

中继/路由器登录突变?

如何删除 Graphene Django 突变查询(中继)中的嵌套输入对象?

中继:有条件地在突变的胖查询中包含字段

中继突变:突变分页关联

中继突变不能动态工作

如何乐观响应中继现代突变中的连接属性?