reactjs - AWS GraphQL : Variable 'input' has coerced Null value for NonNull type 'Input!'

标签 reactjs graphql aws-appsync aws-amplify

我正在使用 ReactJS 和 aws-amplify 来执行 graphql 操作。

代码:

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 架构:

input Input {
   id: ID!
   name: String
}

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

但是,我收到错误:

[Log] Variable 'input' has coerced Null value for NonNull type 'Input!'

使用 AWS 控制台,我的突变有效,并且输入为 NonNull(使用调试器)

有什么想法导致错误吗?

最佳答案

关键是 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(...);

关于reactjs - AWS GraphQL : Variable 'input' has coerced Null value for NonNull type 'Input!' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51999721/

相关文章:

ReactJS:功能组件和返回 jsx 的函数之间的区别

reactjs - 如何使用 react-query 的关注点分离(在干净的架构上下文中)

reactjs - 如何在一个没有 Provider 但有 connect 的组件中使用 Redux 存储,因为不需要子组件?

python - 用于运行 Django 后端和 React 前端的 Makefile

java - GraphQL 和 Spring Boot 2.0.3

javascript - 使用相对路径而不是 API 服务器进行中继突变

GraphQL/Gatsby/Prismic-查询中 'edges.node.data'和 'nodes.data'之间的区别

amazon-rds - Aurora Serverless v2 可以与 AppSync RDS 解析器一起使用吗?

amazon-cognito - Appsync Resolver 中没有电子邮件

elasticsearch - 如何从 Amplify - AppSync - ElasticSearch - DynamoDB Stack 中获取看不见的附近文档?