Skip to content

[Bug] 详情页刷新/进入无法显示数据,recordId 带前缀导致 findOne 查不到记录 #927

@hotlong

Description

@hotlong

现象

https://demo.objectui.org/apps/crm_app/contact/record/contact-1772355903654-1 进入详情页或者刷新,页面不会显示任何数据,也无错误提示。

预期

详情页应能正常显示记录内容。

原因分析

  • URL 里的 recordIdcontact-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

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions