Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

【列表视图】配置面板属性变更后未实时生效(需点击保存)/ 导航与部分属性未正确同步 #833

Closed

Description

@hotlong

问题列表(结合详细排查后已合并):

1. 列表视图(ListView)配置面板中的大部分属性变更(如"显示记录数"、"允许打印"、"添加记录按钮"、选择模式等),仅在点击保存后才会生效,无法实时预览。

  • 预期:修改任何配置应立即反映到主视图组件,达到实时(Live Preview)效果。
  • 实际表现:侧边栏切换/勾选各种选项后,主表格、工具栏等内容未实时刷新,只有保存后才体现。
  • 主要原因:配置变更只更新了viewDraft,但PluginObjectView用了key={refreshKey},只有保存/创建时才会re-mount,普通变动(onViewUpdate)不触发key更换,导致视图不更新。
  • 建议修复方案:
    1. 移除key={refreshKey},或通过依赖viewDraft/activeView保证主组件可以响应props变化重新渲染;
    2. 或在onViewUpdate时同步刷新key(不推荐,性能差,且用户体验差);
    3. 优化数据流:让Live Preview不需要重挂载即可响应配置变更。

2. 导航模式(如Page/Drawer/Modal/Split/Popover)等设置面板切换无效,Overlay详情弹窗的导航配置未能和View配置实时同步。

  • 预期:切换不同的导航模式,应随即生效,改变弹窗/分屏表现。
  • 实际:导航配置(如mode: drawer/modal/...)实际取自objectDef.navigation,只在对象级用,视图级别的navigation未被消费。
  • 建议修复方案:
    • 让详情Overlay支持消费当前视图的navigation(activeView.navigation)或嵌套优先级 objectDef < activeView。

3. 各种Toolbar和Actions属性未实时生效,例如:

  • 添加记录按钮(addRecord/addRecordViaForm)
  • 允许打印(allowPrinting)
  • 显示记录数(showRecordCount)
  • 选择模式(selection)等
  • 相关代码流上,很多prop已经透传到主ListView schema,但因为主视图未及时re-render,所以未生效。

4. 代码一致性与最佳实践建议:

  • PluginObjectView建议React式解耦key依赖,利用useMemo等响应变化。
  • 子组件/Overlay建议向下消费viewDraft或activeView内的所有控制项。

附问题截图��

列表属性变动无效示例

复现步骤

  1. 打开Contacts模块,右侧列表视图配置面板
  2. 切换如添加记录、显示记录数、打印等选项
  3. 观察主表主体和Toolbar无实时响应,需等到点击"保存"才刷新配置
  4. 导航模式切换无效,始终是Drawer/未变成Split/Modal等

期望行为

  • 切换任意面板属性后能立刻在列表中反映出来(Live Preview效果,无需保存)
  • 导航模式等变更能及时同步到Overlay

相关代码位置:

  • apps/console/src/components/ObjectView.tsx (handleViewUpdate, renderListView等)
  • apps/console/src/components/ViewConfigPanel.tsx
  • packages/plugin-list/src/ListView.tsx
  • ...等

参考:

  • ROADMAP 已有相关Phase 2, Phase 3优化记录,但本问题为实际体验断层
  • [ ListView 属性和Live Preview 代码文档与测试用例详见 repo 搜索 ]

需要关注/修复标签:

bug, 配置, live preview


补充说明:建议修复后,务必补充自动化测试,覆盖所有toolbar、显示行为props的变更场景。


请开发修复后:记得运行test、确保所有相关场景通过,必要时补充ROADMAP进度注记。


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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