AWS GraphQL:变量“input”已将Null值强制转换为NonNull类型“Input!”

25
我使用ReactJS和aws-amplify执行Graphql操作。

CODE:

import {
   API,
   graphqlOperation
} from 'aws-amplify';

import { UpdateInput } from './mutations.js';

// Call mutation
const input = { /* some values */ };
API.graphql(graphqlOperation(UpdateInput, input)).then(...);

GraphQL变异定义:

export const UpdateInput = `mutation UpdateInput($input: Input!) {
   updateInput(input: $input) {
      id, 
      name
   }   
}`

GraphQL Schema:

input Input {
   id: ID!
   name: String
}

type Mutation {
   updateInput(input: Input!): String
}

然而,我遇到一个错误:

[日志] 变量 'input' 在 NonNull 类型 'Input!' 中被强制转换为空值

使用 AWS 控制台时,我的变异正常工作,并且使用调试器可以确定 input 是 NonNull 的。

你有什么想法是什么导致了这个错误吗?

1个回答

54

updateInput 变更中,关键字是 input

updateInput(input: Input!): String
         // ^^^^^ input key

因此,需要在传递的变量中指定正确的键。

const variables = {
  input: someData, // key is "input" based on the mutation above
};

API.graphql(graphqlOperation(UpdateInput, variables)).then(...);

谢谢!这个解决方案帮助我发现我没有将“input”传递给查询,而是只传递了“id”。 - Adam Ryason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接