angular - Storybook.js + Storyshots 中的组件初始化(使用 Angular)
问题描述
我有这些包的工作配置:
"@storybook/addon-essentials": "^6.2.9",
"@storybook/addon-storyshots": "^6.2.9",
"@storybook/angular": "^6.2.9",
"jest": "27.0.4",
"@angular/compiler-cli": "^10.2.4",
执行故事书时,我可以看到故事中的组件,......而且它看起来和工作正常。仅当我尝试使用 storyshots 场景运行测试(ng test --verbose --detectOpenHandles)时才会出现问题。
组件在没有参数的情况下进行初始化,并在稍后设置。使用以下哪种方式无关紧要:
export const Primary = () => ({
props: {
data: {
userCount: 300,
}
}
});
const Template: Story<PredictionCellComponent> = (args) => ({
props: args,
});
或者
export const SecondaryArgs = Template.bind({});
SecondaryArgs.args = {
data: {
userCount: 400,
}
};
在这两种情况下,以下组件都会出现TypeError: Cannot read property 'userPrediction' of undefined。
<span *ngIf="data.userPrediction">
Foo
</span>
有没有办法,如何直接用参数初始化组件?我当前的解决方法是用 '<ng-container *ngIf="data">' 将它括起来,但我不想让我的所有组件复杂化。
解决方案
推荐阅读
- javascript - 如何通过脚本从谷歌表格中的单元格中删除子字符串
- c# - 从 C# 程序调用 C++ 函数
- java - PDFBox 库从签名的 PDF 中读取不可见的 PDFSignature。签名者姓名未显示
- java - ASM BasicInterpreter IllegalStateException
- google-apps-script - 在多个选项卡中运行脚本
- python - Python + Selenium - 微软 2FA
- macos - XCode 12.0.1 和 12.1 不要构建通用应用程序
- tensorflow - Keras LSTM:如何为每个时间步赋予真正的价值(多对多)
- scala - 使用 scala 填充缺少日期(以天为单位)的数据集
- reporting-services - 在报表生成器中拆分