在查询上遇到子选择,但是存储没有对象引用 Apollo Link State
Posted
技术标签:
【中文标题】在查询上遇到子选择,但是存储没有对象引用 Apollo Link State【英文标题】:Encountered a sub-selection on the query, but the store doesn't have an object reference Apollo Link State 【发布时间】:2019-03-13 09:13:35 【问题描述】:这是我从服务器获取所有数据的主要查询。
那我想把它设置为 Apollo 链接状态。
要设置链接状态,这是我的解析器。
这是我获取先前缓存状态的客户端/缓存查询。
我不知道我错过了什么。
ApolloError.js:37 Uncaught (in promise) 错误:网络错误: 查询时遇到子选择,但店铺没有 对象引用。这在正常使用期间绝不应该发生,除非 您有直接操作商店的自定义代码;请 提出问题。
【问题讨论】:
我面临同样的问题。不知道为什么。你找到解决办法了吗? 这里一样,不知道什么时候开始出现这个错误 我也遇到了一个非常相似的问题。它似乎不知从何而来。你找到解决方案了吗? 这里一样,突然出现 在节点 > 10 上遇到同样的问题,切换到 8 一切正常。 【参考方案1】:此错误可能是由于apollo-cache-inmemory
软件包版本而发生的。尝试将软件包更新到最新版本:
npm update apollo-cache-inmemory
这个 github 线程正在尝试跟踪问题并且更新包似乎工作得很好:https://github.com/apollographql/apollo-client/issues/4125
【讨论】:
【参考方案2】:您可能有一个查询设置来获取嵌套对象,但您没有从该嵌套对象请求任何内容。
在本例中,hero 有两个属性,name 类型为 string
和 ultimateAbility 类型为 Ability
。
Ability
有 name:string
和 cooldown:number
。
考虑到这一点,以下可能会给您该错误,因为我们正在请求 ultimateAbility(我们的嵌套对象),但我们没有告诉图表我们想要从中得到什么:
hero
name
ultimateAbility
正确的方法是从 ultimateAbility 中添加您想要的道具:
hero
name
ultimateAbility
name
我的背景:我最近经历了这件事,在挖掘了很多 PR 之后,我的团队确定了这一点。
【讨论】:
以上是关于在查询上遇到子选择,但是存储没有对象引用 Apollo Link State的主要内容,如果未能解决你的问题,请参考以下文章