如何根据另一个参数的值有条件地禁用 Storybook 中的控件?
Posted
技术标签:
【中文标题】如何根据另一个参数的值有条件地禁用 Storybook 中的控件?【英文标题】:How can I conditionally disable a control in Storybook based on the value of another argument? 【发布时间】:2021-02-25 15:50:10 【问题描述】:我正在尝试根据另一个参数的值有条件地禁用 Storybook.js 控件。例如,我有一个模式组件,它的类型可以是“警报”、“确认”、“内容”或“照片”。所有这些模式类型,除了“照片”,还需要一个字符串类型的内容道具。 photo modal 不需要这个 content prop,因为它不显示任何文本。
所以我想在 type 属性选择为“照片”时禁用 Storybook 中的内容控件。
我首先尝试编写一个自定义的 propType 验证器,但 Storybook 认为这个 prop 应该是一个函数: Custom PropType validator in Storybook
现在我正在尝试禁用组件故事书文件中的控件:
export default
title: 'Global Design System/Modal',
component: Modal,
argTypes:
type:
control:
type: 'select',
options: [
'alert',
'confirmation',
'content',
'photo'
]
,
content:
table:
disable: function()
return this.argTypes.type === 'photo'
,
;
但在这种情况下,我无法引用 'type' 的当前值
【问题讨论】:
【参考方案1】:暂时不能!我看到成员 SB 为类似的功能创建了 PR,但它没有合并就关闭了。
【讨论】:
以上是关于如何根据另一个参数的值有条件地禁用 Storybook 中的控件?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 s-s-rS 中单独字段的值有条件地格式化整行的文本颜色?