【问题标题】:How to config a storybook for a ui library for Ionic & Angular如何为 Ionic 和 Angular 的 ui 库配置故事书
【发布时间】:2021-06-10 20:45:15
【问题描述】:

我正在为 Ionic 5 和 Angular 11 开发一个包含一些 ui 组件的库,我想配置我的第一本故事书来开发和记录该库。 我的 lib 没有 AppController,但只有一个带有按钮组件的模块。

这是我的故事文件:

export default {
  title: 'AlertButtonComponent',
};

export const primary = () => ({
  moduleMetadata: {
    declarations: [AlertButtonComponent],
    imports: [IonicModule.forRoot()],
  },
  component: AlertButtonComponent,
  props: {
    label: text('label', 'Button Label'),
    message: text('message', 'Alert message!'),
  },
});

在故事书中,按钮可以工作,但样式不像放置在 Ionic 应用程序中时那样 100%:

我看到在一个普通的应用程序上,Ionic 将一些基本的 css 规则应用于 body 标签,但是如何实现呢? 可能我的按钮组件需要一个父 App 容器之类的东西,但是如果我只开发一个库,我该怎么做呢?

提前谢谢你!

【问题讨论】:

    标签: angular storybook ionic5


    【解决方案1】:

    这样的方法可能有用吗?

    import { IonicModule } from '@ionic/angular';
    import { moduleMetadata } from '@storybook/angular';
    import { Story, Meta } from '@storybook/angular/types-6-0';
    import Button from './button.component';
    
    export default {
      title: 'Example/Button2',
      component: Button,
      decorators: [
        moduleMetadata({
          declarations: [],
          imports: [IonicModule.forRoot()],
        }),
      ],
    } as Meta;
    
    const Template: Story<Button> = (args: Button) => ({
      component: Button,
      props: args,
    });
    
    export const Primary = Template.bind({});
    Primary.args = {
      label: 'Next',
      message: 'Alert Message',
    };
    

    【讨论】:

    • 嗨亚伦!我在故事书网站上看到有一些这样的例子,但语法有点不同。我已经测试过了,结果是一样的……
    • 我运行了这段代码,它运行良好,所以您需要提供特定于您的组件的代码
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 2020-05-06
    • 2021-03-12
    • 2020-06-19
    • 2021-06-29
    • 2020-12-07
    • 2020-12-07
    • 2020-12-11
    相关资源
    最近更新 更多