React Amplify/Datastore-无法获取要删除的删除记录



在react中,我有以下离线运行的代码。我显然找到了

async function deleteMessage() {
toDelete = await DataStore.query(Message, c => c.id("eq","4faebf3b-f89a-4e34-978a-0fea611897e0"))
alert("toDelete: " + !toDelete ? toDelete : toDelete.length )
if (!toDelete || (toDelete !== undefined && toDelete.length == 0)) 
{
alert("Nothing to delete")
return
}
alert("Deleting " + toDelete.length + " records.")
alert("id for 0 = " + toDelete[0].id + " title: " + toDelete[0].title + " color: " + toDelete[0].color + " createdAt: " + toDelete[0].createdAt)
await DataStore.delete(toDelete);
alert("after delete")
// updateFormState(initialState)
}

toDelete使所有字段都正确,并且在实际删除之前显示在警报中,因此toDelete应该是正确的模型。

唯一的警报是:删除1条记录。

下一个警报显示:0的id=4faebf3b-f89a-4e34-978a-0fae611897e0标题:aaasdfasdf颜色:#6c2f2fcreatedAt:未定义

但它从未从删除中返回,我得到了错误:

Unhandled Rejection (Error): Object is not an instance of a valid model
DataStore.<anonymous>
C:/Projects/React/src/datastore/datastore.ts:897
894 |     sortPredicate = ModelSortPredicateCreator.createFromExisting(modelDefinition, paginationProducer.sort);
895 | }
896 | return {
> 897 |     limit: limit,
| ^  898 |     page: page,
899 |     sort: sortPredicate,
900 | };
View compiled

我错过了什么?

此外,模型为:

type Message @model {
id: ID!
title: String!
color: String
createdAt: String
}

谢谢。

想明白了。

更改为Delete=等待DataStore.query(Message,c=>c.id("eq","4faebf3b-f89a-4e34-978a-0fea611897e0"(

toDelete=等待DataStore.query(Message,"4faebf3b-f89a-4e34-978a-0fea611897e0"(

第一个示例返回一个对象数组。第二个示例返回一个对象。

DataStore.delete((需要一个对象,而不是对象数组。我路过一排物体。

delete(toDelete(可以处理第二个示例,但不能处理第一个示例,因为它是一个对象。

如果我使用的是第一个例子,就必须使用:

DataStore.delete(toDelete[0](

最新更新