Appwrite查询获取已完成任务失败问题求助
修复Appwrite查询已完成任务的逻辑问题
你的查询逻辑问题出在已完成任务分支的Query.equal参数上:
你当前用了数组形式传递[true],但Appwrite的Query.equal方法针对布尔类型字段时,直接传入布尔值即可,数组格式是用于匹配多个可选值的场景(比如枚举字段匹配多个选项),布尔字段用数组会导致匹配逻辑失效。
修正后的代码
const fetchTodos = async (type = 'all') => { let promise; if (type === 'all') { promise = databases.listDocuments(DATABASES_ID, COLLECTION_ID) } else if (type === 'active') { promise = databases.listDocuments(DATABASES_ID, COLLECTION_ID, [ Query.equal('completed', false ) ]) } else { // 把 [true] 改为直接传入 true promise = databases.listDocuments(DATABASES_ID, COLLECTION_ID, [ Query.equal('completed', true) ]) } promise.then(function (response) { setTodos(response.documents) console.log(response); // Success }, function (error) { console.log(error); // Failure }); }
额外检查点
- 确认你的Appwrite集合中,
completed字段的类型确实是布尔(Boolean),如果是字符串类型(比如存的是"true"字符串),需要调整查询值为对应的字符串,或者修改字段类型为布尔型。
内容的提问来源于stack exchange,提问作者yagyesh
相关产品推荐
相关产品推荐

