首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应:如何将Storybook .stories放在每个组件的目录中?

反应:如何将Storybook .stories放在每个组件的目录中?
EN

Stack Overflow用户
提问于 2020-04-17 01:54:12
回答 1查看 3.4K关注 0票数 3

目前,我的所有.stories文件都保存在stories目录中。当我添加更多的组件时,这种情况会增加。

相反,我想在组件级别上添加每个组件的.stories文件,如这里的Storybook站点上的文档:https://storybook.js.org/docs/basics/writing-stories/#loading-stories-dynamically

问题是我不知道该怎么做。

我已经设置了以下简单组件(所有文件都位于同一个目录中):

PageTitle.tsx

代码语言:javascript
复制
import React from 'react'
import { Typography } from '@material-ui/core';
import { makeStyles } from "@material-ui/styles";

const useStyles = makeStyles(() => ({
  typographyStyles: {
    flex: 1
  }
}));

interface PageTitleProps {
  title: string;
}

const PageTitle = ({ title }: PageTitleProps) => {
  const classes = useStyles()
  return (
    <Typography className={classes.typographyStyles} variant="h1" component="h2">
      {title}
    </Typography>
  )
};

export default PageTitle; 

index.tsx

代码语言:javascript
复制
import PageTitle from './PageTitle';
export default PageTitle;

index.stories.tsx

代码语言:javascript
复制
import React from 'react';
import { storiesOf } from '@storybook/react'
import FormPageTitle from './index';

export default {
  title: 'Titles|PageTitle',
  component: PageTitle,
};

export const withText = () => {
  return <PageTitle title="Hello World" />;
};

在我的.storybook目录中,我有一个main.js文件,它只包含:

代码语言:javascript
复制
module.exports = {
  stories: ['../src/**/*.stories.tsx'],
  addons: [
    '@storybook/preset-create-react-app',
    '@storybook/addon-actions',
    '@storybook/addon-links',
    {
      name: '@storybook/addon-docs',
      options: {
        configureJSX: true,
      },
    },
  ],
};

但我只知道一个错误:

未找到

模块:错误:无法解析/myApp/src/中的“./index”

无论我称之为.stories文件,都会发生这种情况。

有谁知道设置这个的正确方法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-22 04:06:17

config.js目录中创建一个.storybook

使用

代码语言:javascript
复制
import React from 'react';
import { configure, addDecorator } from '@storybook/react';
import { action } from '@storybook/addon-actions';
import styled from 'styled-components';

const Wrapper = styled.div`
  display: flex;
  flex: 1;
  height: 100vh;
  align-items: center;
  justify-content: center;
`;

const Decorator = (storyFn) => <Wrapper>{storyFn()}</Wrapper>;

addDecorator(Decorator);

global.___loader = {
  enqueue: () => {},
  hovering: () => {},
};

global.__PATH_PREFIX__ = '';
window.___navigate = (pathname) => {
  action('NavigateTo:')(pathname);
};

const req = require.context('../src/components/', true, /\.stories\.js$/);

function loadStories() {
  req.keys().forEach((filename) => req(filename));
}

configure(loadStories, module);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61262902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档