storybook 导入其模块时,Angular 组件不是已知元素

hjzp0vay  于 2022-10-29  发布在  其他
关注(0)|答案(7)|浏览(183)

描述Bug

v6.2.0-alpha.28中,当导入story中组件的模块时,该组件不再是已知元素。

重现

导入承载组件的模块:

export default {
  title:      'Components/MyComponent',
  component:  MyComponent,
  decorators: [
    moduleMetadata({
      imports: [BrowserAnimationsModule, MyModule],
    }),
  ],
} as Meta;

const Template: Story<MyComponent> = (args) => ({
  component: MyComponent,
  props:     args,
});

export const MyState = Template.bind({});

相反,它在以下情况下有效:

  • 删除模块导入,但这不是一个选项,因为模块导入了重要的依赖项,如管道、服务等。
  • 将组件添加到导出中,但实际上我不希望在应用程序中导出组件
  • 降级为^6.1.18
    预期行为

组件应按照6.1.x中的方式创建,而不必将其添加到模块的exports

系统

系统:
最低操作系统:macOS 11.2.1
CPU:12个x64英特尔®酷睿™ i7- 9750 H CPU,主频2.60 GHz
二进制文件:
节点:15.6.0 - ~/.nvm/版本/节点/v15.6.0/bin/节点
Yarn:1.22.10 - /usr/本地/bin/Yarn
npm:7.4.0 - ~/.nvm/版本/节点/v15.6.0/bin/npm
浏览器:
铬合金:88.0.4324.150
火狐浏览器:81.0.1
Safari浏览器版本:14.0.3
npm程序包:
@故事书/附加动作:=v6.2.0-alpha.286.2.0-alpha.28版本
@故事书/附加-必需品:=v6.2.0-alpha.286.2.0-alpha.28版本
@故事书/附加链接:=v6.2.0-alpha.286.2.0-alpha.28版本
@故事书/棱角分明:=v6.2.0-alpha.286.2.0-alpha.28版本

jrcvhitl

jrcvhitl1#

组件是否从模块中导出?

sg2wtvxw

sg2wtvxw2#

@yngvebn正如我所描述的,它在导出时工作,但我不想导出它。在6.1.x中,它在不导出时工作。

z9zf31ra

z9zf31ra3#

是的,你是对的@MickL
这是一个错误的故事书的行为,这违背了Angular 的功能。我认为
您可以使用导出组件的模块
或者在story中通过声明组件、导入、扩展来重新生成模块。
这两个的混合是不一致的。Storybook需要创建一个模块,而Angular禁止在两个不同的模块中声明组件:/

ix0qys7i

ix0qys7i4#

这件事有什么进展吗?这确实是一个奇怪的问题

cu6pst1q

cu6pst1q5#

您可以使用导出组件的模块
或者在story中通过声明组件、导入、扩展来重新生成模块。
如果我试图通过声明组件、导入等来重新生成模块,我会得到一个错误,即该组件在两个模块中定义。因此,解决此问题的唯一方法是导出Storybook中所有我想拥有的组件。

gpfsuwkq

gpfsuwkq6#

目前,我看到了解决此问题的任何方法:/
Sb需要一个模块来启动。并且符合组件声明的Angular 约定

0qx6xfy6

0qx6xfy67#

关于此问题有任何更新吗?

相关问题