我想使用graphql触发服务器上的addLicenseCodeOneTimeUsage
操作。我不知道服务器将响应什么,也不需要任何响应。如您所见,我在addLicenseCodeOneTimeUsage{}
中未列出任何属性。
const client = new ApolloClient({
link: link,
cache: new InMemoryCache(),
});
yield client.mutate({
/* tslint:disable */
mutation: gql`
}
mutation licensemutation($distributor: String!, $licenceType: String!, $duration: String!, $userId: String!) {
addLicenseCodeOneTimeUsage(distributor: $distributor, licenseType: $licenseType, duration: $duration, userId: $userId) {
}
}
`,
/* tslint:enable */
variables: {
userId: username,
distributor: distributor,
licenseType: licenseType,
duration: duration,
},
});
答案 0 :(得分:0)
突变的返回类型必须定义至少一个字段,并且您必须在查询中从中至少选择一个字段。 (请参见§3.6 of the spec。)
如果您同时控制服务器和客户端,并且该变异实际上不返回任何内容,则可以定义一个总是正确的虚假ok: Boolean!
。您可能会返回类似用户对象的内容,其中也包含权利列表,在这种情况下,您可以选择(并忽略)用户ID。
答案 1 :(得分:0)
我认为这可能是ignoreResults
的目的。
ignoreResults
-如果为true,则返回的数据属性将不会随着变异结果更新。
因此(使用此选项)突变如下所示:
client.mutate({
mutation: MutationDocument
variables: {
userId: username,
distributor: distributor,
licenseType: licenseType,
duration: duration,
},
ignoreResults: true
});