GraphQL出错:没有提供id,但商店已经包含了id

时间:2018-03-02 11:19:50

标签: graphql apollo

我是GraphQL和Apollo的新手,我不明白' aliasEmail'下面的字段。当我将这个添加到查询时,我收到此错误消息。当我从查询中删除它时,一切都很完美。 它在' types.graphql'中有明确的定义。并且只是一个简单的字符串字段。

index.js:2178 Unhandled (in react apollo:Apollo(withRouter(EmailSettingsContainer))) Error: Network 
error: Error writing result to store for query:
  query getCompanyForAliasEmailEditForm($companyId: ID) {
    Company(id: $companyId) {
      name
      isTaxActive
      telFixe
      aliasEmail
      telMobile
      __typename
    }
}

Store error: the application attempted to write an object with no 
provided id but the store already contains an id of 
Company:cje6xkcnxl83u01353a20p1t6 for this object. The selectionSet 
that was trying to be written is:
  Company(id: $companyId) {
    name
    isTaxActive
    telFixe
    aliasEmail
    telMobile
    __typename
  }

1 个答案:

答案 0 :(得分:3)

听起来已经在应用中的其他位置发出了另一个查询,该查询也返回了公司对象,该查询包含id(或_id)字段,而查询中这种情况没有。 Apollo使用typename和id为您的查询结果生成缓存键(除非使用dataIdFromObject来修改此行为),因此在检测到上述差异时会抛出错误。尝试在getCompanyForAliasEmailEditForm查询中添加id字段。