无法将组件导入故事书

Posted

技术标签:

【中文标题】无法将组件导入故事书【英文标题】:Unable to import components into storybook 【发布时间】:2021-05-12 08:16:14 【问题描述】:

我无法让我的第一本故事书工作。我正在使用最新的故事书版本和配置,并运行 npx sb init 来执行此操作,如 here 所记录的那样。

以下故事文件可以正常运行:

SampleComponent.stories.tsx:

import React from 'react';
// eslint-disable-next-line import/no-extraneous-dependencies
import  Meta  from '@storybook/react/types-6-0';
// eslint-disable-next-line import/no-extraneous-dependencies
import SampleComponent from './SampleComponent';

export const Foo: React.FC = () => <SampleComponent />;

export default 
  title: 'Testing',
  component: Foo,
 as Meta;

但是,下面的故事书不起作用,我得到了一本空的故事书。我还收到控制台消息:

找到“测试”的故事文件,但没有导出故事。

SampleComponent.stories.tsx:

import React from 'react';
// eslint-disable-next-line import/no-extraneous-dependencies
import  Meta  from '@storybook/react/types-6-0';
// eslint-disable-next-line import/no-extraneous-dependencies
import SampleComponent from './SampleComponent';

export default 
  title: 'Testing',
  component: SampleComponent,
 as Meta;

为什么我无法将SampleComponent 直接导入我的默认导出?


.storybook/main.js:

module.exports = 
  "stories": [
    "../src/**/*.stories.@(js|jsx|ts|tsx)"
  ],
  "addons": [
    "@storybook/addon-links",
    "@storybook/addon-essentials"
  ]

SampleComponent.tsx:

import React from 'react';

const SampleComponent: React.FC = () => <h1>Hello World</h1>;

export default SampleComponent;

文件结构:

src/
  - components/
    - SampleComponent/
      - SampleComponent.tsx
      - SampleComponent.stories.tsx

【问题讨论】:

【参考方案1】:

stories 文件应导出故事,命名为 export。您的第二个示例不导出任何故事。

您可以添加:

export MyStory = () => <SampleComponent/>

或导出目录SampleComponent,但这可能不是一个好主意:你 可能会使用 args、参数等。

【讨论】:

以上是关于无法将组件导入故事书的主要内容,如果未能解决你的问题,请参考以下文章

如何在故事书中配置 webpack 以允许 babel 在项目文件夹之外导入反应组件

故事书:对象不是 Twig 组件上的函数

样式化组件 + 故事书:当我传递新样式时,SVG 图标不会重新渲染

在故事书故事中使用类星体组件时无法读取未定义的属性“屏幕”

带有 redux 组件的故事书

如何将组件导出到故事书