【发布时间】:2019-10-24 09:25:10
【问题描述】:
我正在使用 react native 和 aws amplify 与 graphQL 交互。但是,在进行此突变时,我收到错误““变量'输入'已强制非空类型'ID!'的空值”。
addStudent = async (classData) => {
try {
let user = await Auth.currentAuthenticatedUser();
const emailAttribute = user.attributes.email;
const studentObj = {
name: this.state.studentName,
email: emailAttribute,
class: classData.id,
}
await API.graphql(graphqlOperation(mutations.createStudent, { input: studentObj }));
} catch (err) {
console.error(err);
}
}
这是我的架构:
type Class @model @auth(rules: [{ allow: owner, queries: null}]) {
id: ID!
name: String!
password: String!
email: String!
students: [Student] @connection(name: "ClassStudents")
}
type Student @model @auth(rules: [{ allow: owner, queries: null}]) {
id: ID!
name: String!
email: String!
class: Class! @connection(name: "ClassStudents")
attendance: [Attendance] @connection(name: "StudentAttendance")
}
这是我试图称之为 AWS 生成的突变:
export const createStudent = `mutation CreateStudent($input: CreateStudentInput!) {
createStudent(input: $input) {
id
name
email
class {
id
name
password
email
students {
nextToken
}
}
attendance {
items {
id
date
}
nextToken
}
}
}
`;
我已经尝试过类似问题的解决方案,例如更改 mutator 参数的语法,但错误仍然存在。知道如何解决这个问题吗?
【问题讨论】:
-
没有在输入对象中定义
id属性(变异参数)studentObj -
@xadm 当我调用 mutator createClass 时,我不必传入 id 值。在放大文档中,它们从不传递 id 的值。
-
使
id在CreateStudentInput中可以为空
标签: javascript amazon-web-services react-native graphql aws-sdk