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

Storybook Auto Doc(v7)无法读取组件默认Props与Prop类型求助

解决Storybook7自动文档不渲染组件Props类型和默认值的问题

针对Webpack5+React18+Storybook7的环境,按以下步骤排查修复:

1. 确认Docs插件安装与配置

  • 确保@storybook/addon-docs已安装:
    npm install @storybook/addon-docs --save-dev
    
  • 在.storybook/main.js中确认插件已加入addons数组:
    module.exports = {
      framework: {
        name: '@storybook/react-webpack5',
        options: {}
      },
      addons: ['@storybook/addon-docs'],
      // 其他配置项
    };
    

2. 规范组件的Props定义

使用PropTypes的情况

组件文件中必须明确导出propTypes和defaultProps:

import PropTypes from 'prop-types';

const Button = ({ label, disabled }) => {
  return <button disabled={disabled}>{label}</button>;
};

Button.propTypes = {
  label: PropTypes.string.isRequired,
  disabled: PropTypes.bool
};

Button.defaultProps = {
  disabled: false
};

export default Button;

使用TypeScript的情况

确保Props接口定义完整,默认值直接赋值或通过defaultProps声明:

interface ButtonProps {
  label: string;
  disabled?: boolean;
}

const Button = ({ label, disabled = false }: ButtonProps) => {
  return <button disabled={disabled}>{label}</button>;
};

export default Button;

3. 开启Story的自动文档标签

在Story文件的meta配置中添加tags: ['autodocs'],确保自动文档生成:

import Button from './Button';

export default {
  title: 'Components/Button',
  component: Button,
  tags: ['autodocs'] // 关键:开启自动文档
};

export const Primary = {
  args: {
    label: 'Primary Button'
  }
};

4. 清理缓存并重启服务

执行命令清理Storybook缓存,避免旧缓存导致的解析异常:

npx storybook build --clean
# 或直接删除.storybook/.cache文件夹后重启
npm run storybook

5. 排查插件冲突

暂时禁用非必要的Storybook插件(如自定义装饰器、主题插件等),确认是否存在插件干扰Docs的Props解析逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:27:12