中继突变。脂肪查询。询问 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 中的所有字段的主要内容,如果未能解决你的问题,请参考以下文章