react-admin useGetList筛选失效问题求助
问题排查与解决方案
可能的原因及对应解决方法:
数据类型不匹配
虽然前端控制台输出data[0].calculationData === recordid为true,但如果后端使用MongoDB这类数据库,calculationData字段可能存储为ObjectId类型,而你传入的是字符串格式的ID。MongoDB的查询会严格校验数据类型,字符串与ObjectId不匹配会导致查询无结果。
解决:尝试将recordid转换为ObjectId后再传入(若后端基于MongoDB),或者修改后端查询逻辑,自动将传入的字符串ID转为ObjectId进行匹配。关联字段筛选格式错误
在react-admin中,若building与calculationData是关联关系(calculationData是building的外键),可能需要使用符合数据Provider要求的筛选格式:
比如REST Provider可能需要嵌套id结构:const { data, total } = useGetList('building', { filter: { calculationData: { id: recordid } }, sort: { field: 'updated_at', order: 'DESC' }, });或者部分场景下需要使用外键字段名(如
calculationData_id):const { data, total } = useGetList('building', { filter: { calculationData_id: recordid }, sort: { field: 'updated_at', order: 'DESC' }, });后端字段映射问题
检查后端building模型中,关联字段的名称是否确实为calculationData,是否存在后端用下划线命名(如calculation_data)而前端用驼峰式的情况,这种字段名不匹配会导致筛选条件失效。
内容的提问来源于stack exchange,提问作者Oleksandra Krupnova
相关产品推荐
相关产品推荐

