【问题标题】:Why do we need a root query?为什么我们需要根查询?
【发布时间】:2018-06-29 09:02:54
【问题描述】:

QueryRenderer 采用“查询”道具,其中包含由下游组件片段组成的应用程序的最顶层查询:

const LinkListPage = () => (<QueryRenderer
  query={ rootQuery }
  { ...otherProps }
  render={
    (error, props) =>
      <LinkList viewer={ props.viewer } />
  }
/>)

/* ... */

const rootQuery = graphql`
  query LinkListPageQuery {
    viewer {
      ...LinkList_viewer
    }
  }
`

在上面的例子中,片段“LinkList_viewer”是自给自足的,它告诉我们它向哪个容器提供数据,以及它填充了哪个道具。

为什么中继编译器不自己组装那个根查询?为什么我们需要重复输入props.viewer,而在哪里传递什么是显而易见且明确的?在任何情况下手动构建根查询对我们有帮助吗?

【问题讨论】:

    标签: relayjs relay


    【解决方案1】:

    query 用于区分请求幂等的数据 (query) 与请求将改变状态的数据 (mutations) 和以其他方式表现的数据 (subscriptions)。

    我认为 Relay 库的理念是不要尝试在使用它时使用太多魔法,因此无法在只有一个节点的查询中自动传递数据。

    【讨论】:

      猜你喜欢
      • 2019-06-09
      • 2014-06-18
      • 2017-02-26
      • 2011-04-03
      • 2017-07-27
      • 2020-09-21
      • 2020-03-09
      • 2018-12-24
      • 2012-04-08
      相关资源
      最近更新 更多