You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Storybook v6.5.9渲染React/MUI组件时Controls页不显示描述与默认值

问题场景

使用Storybook v6.5.9渲染React/MUI组件时,核心功能运行正常,但存在属性展示异常:

  • Canvas页面的Controls标签页下,组件属性的描述说明、默认值无法正常渲染
    Controls标签下描述与默认值缺失
  • 切换到Docs标签页后,属性描述信息可以正常展示
    Docs标签下描述与默认值正常显示
  • 未对Storybook默认导出项添加额外配置,也未修改任何开箱即用的默认参数。
修复方案

这个问题是TS类型解析规则不匹配导致的,按以下步骤操作即可修复:

  1. 打开项目根目录下.storybook/main.js(或main.ts)配置文件
  2. 添加/修改typescript字段配置,指定docgen解析规则,强制提取属性注释与默认值,参考配置如下:
module.exports = {
  // 保留原有其他配置项,比如stories、addons等
  typescript: {
    reactDocgen: 'react-docgen-typescript',
    reactDocgenTypescriptOptions: {
      shouldExtractLiteralValuesFromEnum: true,
      shouldRemoveUndefinedFromOptional: true,
      // 过滤node_modules里第三方组件的冗余属性,只解析当前项目自定义组件的props
      propFilter: (prop) => {
        if (prop.parent?.fileName) {
          return !prop.parent.fileName.includes('node_modules')
        }
        return true
      }
    }
  }
}
  1. 检查组件写法:
    • 函数组件的属性默认值直接写在参数解构的默认赋值位置,不要通过静态Component.defaultProps属性声明,后者在TS类型推导下经常无法被docgen正确识别
    • 属性描述直接写在Props类型定义的JSDoc注释里,不要在复杂的交叉类型、Pick/Omit嵌套推导上写注释,会导致解析失败
  2. 配置修改完成后,完全终止Storybook运行进程,删除项目下node_modules/.cache缓存目录,重新执行启动命令即可,热重载不会刷新docgen的解析结果,必须冷启动生效。

如果上述操作后仍有问题,检查@storybook/addon-controls版本是否和Storybook主版本完全一致,版本不匹配也会导致Controls面板渲染异常。

内容的提问来源于stack exchange,提问作者Roo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:30:35