![](/img/trans.png)
[英]GraphQL mutation with empty array with React and AWS Amplify
[英]AWS Amplify GraphQL mutation is not updating a boolean field
我正在使用 AWS Amplify GraphQL 控制台,我注意到更新布尔字段不起作用,我不确定具体原因。 这也不适用于我的 React Native 应用程序。 基本上,我想做的是在 onPress 上,将 isOnline 更改为 true 或 false(请参阅下面的完整代码):
isOnline: !car.isOnline
架构.graphql
type Car @model
@key(name: "byUser", fields: ["userId"])
{
id: ID!
type: String!
latitude: Float
longitude: Float
heading: Float
plate: String
isOnline: Boolean
isActive: Boolean
orders: [Order] @connection(keyName: "byCar", fields: ["id"])
userId: ID!
user: User @connection(fields: ["userId"])
}
突变.js
export const updateCar = /* GraphQL */ `
mutation UpdateCar(
$input: UpdateCarInput!
$condition: ModelCarConditionInput
) {
updateCar(input: $input, condition: $condition) {
id
type
latitude
longitude
heading
plate
isOnline
isActive
userId
_version
_deleted
_lastChangedAt
createdAt
updatedAt
}
}
`;
index.js
try {
const userData = await Auth.currentAuthenticatedUser();
const input = {
id: userData.attributes.sub,
isOnline: !car.isOnline,
}
const updatedCarData = await API.graphql(
graphqlOperation(
updateCar, {
input
})
)
console.log("Updated car: ", updatedCarData.data.updateCar)
setCar(updatedCarData.data.updateCar);
} catch (e) {
console.error(e);
}
从应用程序中,每次我将 isOnline 字段设置为 true,即使我尝试将其设置为 false 而不是 !car.isOnline。 我还尝试创建一个名为 isActive 的新字段,该字段最初为空,我在 AWS AppSync GraphQL 控制台上创建了一个突变并能够将其设置为 false,但是当尝试将其设置为 true 时,更新不起作用,它总是返回假。
请注意,正在更新其他字段,例如字符串字段。
你能指导我解决这个问题吗?
我能够通过以下方式解决此问题:
运行以下命令:
amplify update api
选择GraphQL ,然后禁用冲突检测
最后但同样重要的是,运行:
amplify push
我在 Amplify Docs 上没有找到任何解释,但如果您遇到此问题,请确保按照上述步骤操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.