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
的输入,当它立即显而易见且毫不含糊地传递到哪里?在手动构建根查询对我们有帮助的情况下是否有任何情况?
答案 0 :(得分:1)
根query
用于区分对幂等(query
)数据的请求与要求状态(mutations
)变异的数据与其他方式的数据的区别(subscriptions
)。
我认为Relay库中的哲学是在尝试使用它时不会尝试太多魔法,因此缺少在只有一个节点的查询中自动传递数据。