当前位置:  开发笔记 > 前端 > 正文

@relay的目的(pattern:true)

如何解决《@relay的目的(pattern:true)》经验,为你挑选了1个好方法。

新的表达@relay(pattern: true)是在推出更改日志中的relay.js 0.5.

但是无法从描述中找出来,也不能测试它究竟是做什么以及什么时候我应该在写作时使用它fatQueries.

一些例子会非常有帮助.



1> steveluscher..:

考虑如下的GraphQL查询:

viewer {
  friends(first: 10) {
    totalCount
    edges { node { name } }
    pageInfo { hasNextPage }
  }
}

为继电器突变定义胖查询时,要包括字段名称而不指定其任何子字段,则告诉Relay该字段的任何子字段都可能因该突变而发生变化.

不幸的是,省略连接参数,例如find,firstlastfriends现场将导致连接参数的依赖字段验证错误edgespageInfo:

getFatQuery() {
  return Relay.QL`
    fragment on AddFriendMutationPayload {
      viewer { 
        friends { edges, pageInfo }  # Will throw the validation error below
      }
    }
  `;
}

// Uncaught Error: GraphQL validation/transform error ``You supplied the `pageInfo` 
// field on a connection named `friends`, but you did not supply an argument necessary 
// to do so. Use either the `find`, `first`, or `last` argument.`` in file 
// `/path/to/MyMutation.js`.

您可以使用该@relay(pattern: true)指令指示要使用fat查询来模式匹配跟踪的查询,而不是将其用作完全成熟的查询.

getFatQuery() {
  return Relay.QL`
    fragment on AddFriendMutationPayload @relay(pattern: true) {
      viewer {
        friends { edges, pageInfo }  # Valid!
      }
    }
  `;
}

有关突变的更多信息,请参阅:https://facebook.github.io/relay/docs/guides-mutations.html#content

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有