现象
如 https://demo.objectui.org/apps/crm_app/contact/record/contact-1772355903654-1 进入详情页或者刷新,页面不会显示任何数据,也无错误提示。
预期
详情页应能正常显示记录内容。
原因分析
- URL 里的
recordId 为 contact-1772355903654-1,包含对象名前缀
- RecordDetailView 直接将此 id 作为 resourceId 传递给 DetailView
- DetailView 调用 dataSource.findOne("contact", "contact-1772355903654-1"),后端实际存储的是去前缀的 id(如 "1772355903654-1"),查不到返回 null,页面就空白了
关键代码
RecordDetailView.tsx:
const detailSchema: DetailViewSchema = {
type: 'detail-view',
objectName: objectDef.name,
resourceId: recordId, // 此处未剥离前缀
...
}
DetailView.tsx 会直接用 resourceId 查找:
dataSource.findOne(schema.objectName, schema.resourceId)
建议修复
- RecordDetailView 组件提��剥离前缀,只传递纯 id 给 detailSchema.resourceId 和 presence、评论 fetch 等所有相关数据查询点
- DetailView 找不到记录(result==null)应显示 "Record not found" 或错误提示,避免空白页面
影响范围
- 所有详情页的初始加载和刷新
- 任何依赖 recordId 查询的功能
补充
/assign @hotlong
现象
如 https://demo.objectui.org/apps/crm_app/contact/record/contact-1772355903654-1 进入详情页或者刷新,页面不会显示任何数据,也无错误提示。
预期
详情页应能正常显示记录内容。
原因分析
recordId为contact-1772355903654-1,包含对象名前缀关键代码
RecordDetailView.tsx:
DetailView.tsx 会直接用 resourceId 查找:
建议修复
影响范围
补充
/assign @hotlong