AWS graphQL 错误:“变量‘输入’已强制非空类型‘ID!’的空值”

Roy*_*vJr 6 javascript amazon-web-services aws-sdk graphql react-native

我正在使用 react native 和 aws amplify 来与 graphQL 交互。但是,在进行此更改时,我收到错误消息““变量‘输入’已将非空类型‘ID!’的 Null 值强制转换为空值”。

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);
}
}
Run Code Online (Sandbox Code Playgroud)

这是我的架构:

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")
}
Run Code Online (Sandbox Code Playgroud)

这是我试图称之为 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
}
}
}
`;
Run Code Online (Sandbox Code Playgroud)

我已经尝试过类似问题的解决方案,例如更改 mutator 参数的语法,但错误仍然存​​在。知道如何解决这个问题吗?

SHG*_*G21 -5

是的,我认为突变的第一行应该是这样的;

export const createStudent = `mutation CreateStudent($input: ID!)
Run Code Online (Sandbox Code Playgroud)