允许配置在代码面板中显示原始源代码的方式
我目前正在使用storybook进行一个项目,它添加了Code面板和Controls面板。这是我在mdx文件中的内容:
export const Template = ({dark, width, height, theme}) => {
return html`
<my-button
@click=${action('button clicked')}
width="${width}"
height="${height}"
theme="${theme}"
?dark=${dark}>
</my-button>
`;
};
这是用户在Control面板中将dark
设置为true时的Code面板:<my-button width="200" height="40" theme="dark" dark=""> </my-button>
dark是一个布尔值,用户可以在Control面板中设置。
我们支持在Code面板中为每个组件显示原始源代码。html元素的属性值将根据组件的不同配置而改变。但是我们发现覆盖代码面板中的源代码有一些限制。
我们现在的情况是:
- 暗黑模式开启:
<my-button dark=""></my-button>
- 暗黑模式关闭:
<my-button ></my-button>
我们希望更新所有的组件到以下内容:
- 暗黑模式开启:
<my-button dark></my-button>
- 暗黑模式关闭:
<my-button ></my-button>
设置dark
而不带值可以按预期工作,但移除=""
是无法实现的。我们可以定义要显示的输入类型,但我们无法控制这个特定的playground选项卡如何显示它们,而且似乎没有无值属性的类型选项。无论我们将什么值传递给属性,它都会被解析为=""
。
描述你希望实现的解决方案
我们需要将所有的组件更新为以下内容:
- 暗黑模式开启:
<my-button dark></my-button>
- 暗黑模式关闭:
<my-button ></my-button>
描述你考虑过的替代方案
- 无响应*
你是否能够协助将该功能变为现实?
否
3条答案
按热度按时间1rhkuytd1#
这是一个web组件项目吗?如果是,那么这可能是web组件源代码片段生成中的一个bug,因为
<my-button dark></my-button>
应该是默认的行为。h7wcgrx32#
是的,这是一个Web组件项目。你能给我更多信息吗?
lrl1mhuk3#
我不太确定你的问题是什么,但是如果你在使用storybook web-components时遇到了未定义的参数,你可以在代码片段中使用默认值来避免这种情况。例如,如果你有一个名为
myFunction
的函数,它接受一个名为arg
的参数,但你不知道这个参数是否会被传递给它,那么你可以在代码片段中使用默认值: