javascript - 如何重用 Storybook 的组件故事格式 (CSF) 中的旋钮?
问题描述
我有一个Button
包含多个故事的简单组件。所有这些故事都需要相同的旋钮配置。
这种方法有效:
export const Default = () => <Button size={select('size', ['x-large', 'normal', 'x-small'], 'x-small')}>Button</Button>;
export const Disabled = () => <Button disabled size={select('size', ['x-large', 'normal', 'x-small'], 'x-small')}>Button</Button>;
export const Outline = () => <Button outline size={select('size', ['x-large','normal', 'x-small'], 'x-small')}>Button</Button>;
但是,我不想一遍select
又一遍地重复这句话。我尝试传播,如下所示:
const knobs = {
size: select('size', ['x-large', 'normal', 'x-small'], 'x-small')
};
export const Default = () => <Button {...knobs}>Button</Button>;
export const Disabled = () => <Button disabled {...knobs}>Button</Button>;
export const Outline = () => <Button outline {...knobs}>Button</Button>;
但不起作用:旋钮显示在 UI 中,但是当我更新下拉列表时,新值不会传递给旋钮。
我在这里做错了什么?
解决方案
显然,当您将道具作为函数传播时,这很有效。这就是我最终让事情发挥作用的方式:
const knobs = () => ({
size: select('size', ['x-large', 'normal', 'x-small'], 'x-small')
});
export const Default = () => <Button {...knobs()}>Button</Button>;
export const Disabled = () => <Button disabled {...knobs()}>Button</Button>;
export const Outline = () => <Button outline {...knobs()}>Button</Button>;
推荐阅读
- tensorflow - 张量流中的参数调整
- python - 如何从OPENCV python中的图像中删除背景灰色绘图
- javascript - 数据变量更改时克隆到数据变量的道具更新
- javascript - 如何生成
使用本机反应的循环组件? - java - 无法读取文件的最后一行,未进入循环
- hibernate - Spring Data JPA - 谓词 - 使用分页加入 Fetch - 响应非常慢
- azure - Azure 基于源网络的负载均衡规则
- jenkins - 通过 api 调用触发参数化构建
- python - 在 python 中读取 .xlsb 文件时出现问题
- json - 使用 jq 将 json 数组转换为普通数组