簡體   English   中英

錯誤:只能有一個名為“ fragmentName”的片段

[英]Error: There can be only one fragment named “fragmentName”

我正在從此更改架構的格式:

var OldSchema = new GraphQLSchema({
  query: queryType,
  mutation: mutationType
});

對此:

typeDef = `
type Query {
  posts: [Post]
  author: Author
}
`;

const NewSchema = makeExecutableSchema({
  typeDefs: [typeDef],
  resolvers: resolvers
});

由於我有很多字段,並且想將它們從舊格式一一轉換為新格式,因此我使用了來自graphql-tools的功能mergeSchemas

export const RootSchema = mergeSchemas({
  schemas: [NewSchema, OldSchema]
});

當我嘗試創建查詢(僅從OldSchema獲取字段)時,出現錯誤**只能有一個名為“ duty”的片段。

這是我的查詢的樣子:

query {
  person {
    ...personFragment
  }
}
fragment conceptFragment on Person {
  jobs {
    ... on techJob {
      ...activities
    }
    ... on carpentryJob {
      ...skillSet
    }
  }
}
fragment activities on techJob {
  duties {
    ...duty
  }
}
fragment duty on Duties {
  id
}
fragment skillSet on carpentryJob {
  skills {
    ...dutiesSkill
  }
}
fragment dutiesSkill on Skill {
  duties {
    ...duty
  }
}

我知道該錯誤正在分析中發生,並且似乎為OldSchema和RootSchema進行了查詢驗證,但是RootSchema失敗了。

您也許可以給其中一個片段起alias 喜歡:

fragment activities on techJob {
  activities: duties {
    ...duty
  }
}

fragment dutiesSkill on Skill {
  dutiesSkill: duties {
    ...duty
  }
}

通過更新到v14.0.0-rc.2版本已解決了此問題。 沒有提及要解決的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM