Apollo GraphQL:子组件重新运行父查询?
Posted
技术标签:
【中文标题】Apollo GraphQL:子组件重新运行父查询?【英文标题】:Apollo GraphQL: Child Component Re-Runs Parent Query? 【发布时间】:2017-03-25 03:54:38 【问题描述】:我有一个附加了 Apollo 查询的父组件:
const withData = graphql(MY_QUERY,
options( userID )
return
variables: _id: userID
;
,
props( data: loading, getOneUser )
return loading, getOneUser ;
,
);
export default compose(
withData,
withApollo
)(NavigatorsList);
export getOneUser_QUERY ;
我在渲染函数中嵌入了一个名为 userPhoto
的子组件:
return (
<div>
<userPhoto />
[.....]
</div>
)
在没有子组件的情况下,withData GraphQL 函数运行两次,一次用于loading == true
,另一次用于返回数据。
在包含子组件的情况下,withData GraphQL 函数会运行 3 次。第三次 getOneUser
未定义,我的组件抛出错误。
我该如何纠正这个问题?
在此先感谢大家提供任何信息。
【问题讨论】:
【参考方案1】:已修复。子组件中存在语法错误,它没有引发错误,但导致查询运行两次 + 各种其他异常。
【讨论】:
以上是关于Apollo GraphQL:子组件重新运行父查询?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Apollo 重新获取部分 GraphQL 查询的最佳实践?
Apollo - Angular 应用程序中子组件的多个 graphql 订阅
GraphQL _ Apollo-client - 直接在组件中传递 guery 变量
React、Apollo 2、GraphQL、身份验证。登录后如何重新渲染组件