通过AWS AppSync中的突变更新GraphQL数据时出错

问题描述 投票:1回答:1

我已经使用变异成功创建了数据,但是当我更新该数据时,我收到了这个错误

变量'input'强制为NonNull类型'Int!'的Null值!

这是我的查询架构

type SmoothstarRegisteration @model @versioned {
  id: ID!

  active: Boolean!

  type: String!
  registerationSubmitDate: String
  registerationApprovedDate: String
  userId: String!
  videoInfoReviewed: Boolean!

  registerationAttempts: Int!
  registerationStatus: String

  orderNum: String
  orderInfo: OrderInfo @connection(name: "SmoothstarRegisterationOrder")

  address: String
  postCode: String
  region: String
  dateOfBirth: String
  smoothstarModel: String
  purchaseDate: String
  shopName: String
  ocrInfo: OCRInfo @connection(name: "SmoothstarRegisterationOCR")

  privacyPolicyReviewed: Boolean!
  extendedPolicyReviewed: Boolean!
  termsOfUseReviewed: Boolean!

  files: [RegisterationMedia!] @connection(name: "SmoothstarRegisterationMedia")
}

这是更新查询

mutation UpdateSmoothstarRegisteration(
  $input: UpdateSmoothstarRegisterationInput!
) {
  updateSmoothstarRegisteration(input: $input) {
    id
    active
    type
    registerationSubmitDate
    registerationApprovedDate
    userId
    videoInfoReviewed
    registerationAttempts
    registerationStatus
    orderNum
    orderInfo {
      id
      active
      type
      orderNum
    }
    address
    postCode
    region
    dateOfBirth
    smoothstarModel
    purchaseDate
    shopName
    ocrInfo {
      id
      active
      type
      customerId
      customerEmail
      customerPhone
      orderNum
      address
    }
    privacyPolicyReviewed
    extendedPolicyReviewed
    termsOfUseReviewed
    files {
      items {
        id
        version
      }
      nextToken
    }
    version
  }
}

这是调用API的代码。

return API.graphql(graphqlOperation(operation, data))
    .then(response => {
      console.log(`API (${name}) Response => `, response);
      return response;
    })
    .catch(error => {
      throw error;
    });

Operation中,我发送更新查询,就像我正在放置的数据一样

{ input: {
    active: true
    extendedPolicyReviewed: true
    id: "9dfc480f-7bed-42ed-a585-820f5e8c1485"
    orderNum: "ABCD1234xyz"
    privacyPolicyReviewed: true
    registerationAttempts: 2
    registerationStatus: "registered"
    registerationSubmitDate: "2019-03-31"
    smoothstarRegisterationOrderInfoId: "03b6967d-4b86-4c2d-9115-fb7a40a9c474"
    termsOfUseReviewed: true
    type: "W"
    userId: "[email protected]"
    videoInfoReviewed: true 
}}
react-native graphql aws-appsync aws-amplify
1个回答
1
投票

我已经找到了问题,输入中缺少expectedVersion属性。刚刚添加了expectedVersion: 1,它很不错。该数字必须与当前数据中存在的版本条目完全相同,每次调用更新时都必须增加该数字。

© www.soinside.com 2019 - 2024. All rights reserved.