当使用 AWS GraphQL 时,如果出现错误消息“变量'input'已被强制为 NonNull 类型 'ID!' 的 Null 值。”,这意味着你发送了一个 Null 值给了一个被声明为 NonNull 类型的变量。以下是解决这个问题的可能方法:
检查你的 GraphQL 查询或变异的参数。确保你没有将一个 Null 值传递给声明为 NonNull 类型的变量。例如,如果你的变量声明为 input: ID!
,确保你提供了一个有效的 ID 值,而不是 Null。
检查你的代码中是否有错误,导致传递了一个 Null 值给了 NonNull 类型的变量。例如,如果你使用的是编程语言的变量或参数,确保你没有将一个 Null 值传递给了 GraphQL 查询或变异。
以下是一个示例代码,用于演示如何解决这个问题:
import { API, graphqlOperation } from 'aws-amplify';
const createPost = async (title, content) => {
try {
const mutation = `
mutation CreatePost($input: CreatePostInput!) {
createPost(input: $input) {
id
title
content
}
}
`;
const input = {
title: title,
content: content,
};
const result = await API.graphql(graphqlOperation(mutation, { input }));
console.log(result.data.createPost);
} catch (error) {
console.error('Error creating post:', error);
}
};
createPost('My Title', 'My Content');
在上面的示例中,createPost
函数使用 AWS Amplify 的 API.graphql
方法执行一个名为 CreatePost
的 GraphQL 变异。注意,在变异的参数中,我们将 input
变量传递给了 createPost
变异。确保你提供了一个有效的 input
对象,而不是一个 Null 值,以避免出现“变量'input'已被强制为 NonNull 类型 'ID!' 的 Null 值。”的错误。