在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](