我使用 storybook 创建组件库,我遇到了这个问题,我的组件实现了一个 ngOnChanges 方法,当我从 Storybook Controls 传递值时,该方法不会运行。值从故事传递到组件,组件对标题进行视觉更改,但是尽管值被传递给变量,但我的 ngOnChanges 方法没有被触发。
这是我传递值的故事书代码:
import { moduleMetadata } from '@storybook/angular';
import { CommonModule } from '@angular/common';
// also exported from '@storybook/angular' if you can deal with breaking changes in 6.1
import { Story, Meta } from '@storybook/angular/types-6-0';
import { CountComponent } from '../app/count/count.component';
export default {
title: 'Example/Count Component',
component: CountComponent,
} as Meta;
const Template: Story<CountComponent> = (args: CountComponent) => ({ component: CountComponent, props: args, });
export const Title = Template.bind({}); Title.args = { widgetName: '', };
所以如此处所示,我尝试将故事“Title”中的值传递给如下所示的 widgetName 变量,因此我期望传递给计数组件@Input() widgetName ="Total Confirmed";
,当变量值通过故事书模板更改时,该组件在更改时应触发 ngOnChanges
这是我的计数组件:
export class CountComponent implements OnInit {
@Input() widgetName ="Total Confirmed";
constructor() { }
ngOnInit(): void {
}
ngOnChanges() {
console.log(this.widgetName)
//other methods
}
}
经过一番搜索,我注意到这个问题是在 GitHub 上提出的,故事书的成员回复说我们可以使用旋钮插件。然而,旋钮插件已被弃用,因此我需要帮助来解决这个问题吗?提前致谢。github上提出了类似的问题 - https://github.com/storybookjs/storybook/issues/15610