首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将枚举映射到Storybook中的选择下拉列表?

在Storybook中,你可以使用枚举(enumerations)来创建一个选择下拉列表,以便在组件的故事(stories)中进行交互式展示和测试。以下是如何实现这一功能的步骤:

基础概念

枚举是一种数据类型,它允许你定义一组命名的常量值。在Storybook中,你可以使用枚举来表示组件属性(props)的可能取值。

相关优势

  1. 提高可读性:使用枚举可以使代码和配置文件更易读,因为它们提供了有意义的命名。
  2. 减少错误:枚举可以限制属性的取值范围,从而减少因输入错误而导致的bug。
  3. 易于维护:如果需要添加或删除选项,只需修改枚举定义,而不需要在多个地方进行修改。

类型

枚举可以是简单的字符串或数字集合,也可以是更复杂的对象集合。

应用场景

当你需要在Storybook中为组件属性提供一个有限的、预定义的选项列表时,可以使用枚举。

实现步骤

  1. 定义枚举:首先,你需要定义一个枚举类型。
  2. 在Storybook中使用枚举:然后,在Storybook的故事文件中使用这个枚举。

示例代码

假设我们有一个组件 MyComponent,它有一个属性 status,这个属性可以取三个值:'active''inactive''pending'

  1. 定义枚举
代码语言:txt
复制
// enums.js
export const StatusEnum = {
  ACTIVE: 'active',
  INACTIVE: 'inactive',
  PENDING: 'pending',
};
  1. 在Storybook中使用枚举
代码语言:txt
复制
// MyComponent.stories.js
import React from 'react';
import { storiesOf } from '@storybook/react';
import MyComponent from './MyComponent';
import { StatusEnum } from './enums';

const statusOptions = Object.values(StatusEnum).map((status) => ({
  value: status,
  label: status.charAt(0).toUpperCase() + status.slice(1),
}));

storiesOf('MyComponent', module)
  .add('default', () => <MyComponent status={StatusEnum.ACTIVE} />)
  .add('with controls', () => (
    <MyComponent status={StatusEnum.ACTIVE} />
  ))
  .addParameters({
    controls: {
      matchers: {
        color: /(background|color)$/i,
        date: /Date$/,
      },
    },
  })
  .add('with select dropdown', () => (
    <MyComponent status={StatusEnum.ACTIVE} />
  ))
  .addParameters({
    controls: {
      knobs: {
        select: {
          'status': {
            options: statusOptions,
            value: StatusEnum.ACTIVE,
          },
        },
      },
    },
  });

参考链接

通过上述步骤,你可以在Storybook中创建一个基于枚举的选择下拉列表,从而更方便地测试和展示组件的不同状态。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

手摸手教你用 Storybook 改善组件库开发

在上一篇文章 《手摸手教你封装跨项目复用 Vue 组件》 ,介绍了一例用 rollup.js 封装 Vue.js 组件库实践;限于篇幅和复杂度,其中组件即时调试预览部分,也同样采用了 rollup.../stories/ 修改 .storybook/config.js 相应配置,直接把 .stories.js 文件和对应组件源码放在一起: const req = require.context(...为了正确解析 Vue 单文件组件样式部分,修改设置: // .storybook/webpack.config.js const path = require('path'); module.exports.../preview-head.html 引入必要样式等,项目中类似工作可能是在 index.html 等处完成: <link rel="stylesheet" href="//foo/bar/index.css.../HorizentalRadios'; storiesOf('projectA|超过个数变成<em>下拉</em><em>的</em>raidos', module) .add('<em>列表</em>少于预期个数时', () => ({ components

1.9K10

一、首页第一个首页栏制作【仿淘票票系统前后端完全制作(除支付外)】

30px,设置背景色为红色: 此时页面显示如下: 也可以重命名这个行为 logo ,方便之后添加 logo 内容: 接着我们添加下拉菜单列表下拉菜单列表在扩展组件,...点击需要添加下拉菜单容器,然后点击扩展组件,点击下拉菜单即可添加: 在下拉菜单属性,,更改当前选中值,设置选项列表内容,更改大小即可完成: 接着在右侧更改水平对齐属性选择靠右...,此时添加元素才有靠右显示: 接着添加一个正在热文本,该文本需要设置其排版,上下左右内边距,否则无法设置其边距框: 接着在这个文本边框与圆角处设置下边距颜色为主题色(紫红色...接着由于我们内容需要与上下左右边缘有一定距离,那么此时直接设置内容行内边距即可统一为其元素自带边距效果,此时设置这个内容行边距如下: 接着再内容行创建一个行,命名为热内容,这个热内容也就是包裹单独一个影片信息行...: 此时将刚刚所编写所有内容赋值到导航页1: 重命名导航页1为首页: 接着点击首页导航栏,在属性更改选中图标以及文本: 接着预览: 最后把其它导航页名称和图片进行修改即可

8.6K20
  • 在测试自动化中使用Java枚举

    这意味着,从国家/地区下拉列表,我们将选择与“ ES”枚举条目的“ 标签 ”属性相对应值。这很容易检索:Country.ES.label。...此示例下拉列表工作方式如下:未打开(未单击它们)时,“国家/地区”下拉列表显示为空选择,而“城市”下拉列表则完全为空。此时城市下拉列表已禁用,您无法从中选择任何选项。 ?...我们要编写测试需要检查我们想要并已存储在Enum所有国家和城市是否存在于其相应下拉列表。还要记住,每个下拉列表中都有空条目。...因为JavaScript是在从国家/地区下拉列表选择一个国家/地区后将信息加载到城市/下拉菜单一种,所以该测试将:选择每个国家/地区,并针对每个选定国家/地区检查城市下拉列表。...在枚举,这些存储为字符串属性“ city ”列表。我们将通过首先向列表添加一个空字符串来创建期望值列表。然后,我们将使用'addAll()'方法立即添加' 城市 '列表所有项目。

    3.2K10

    在测试自动化中使用Java枚举

    这意味着,从国家/地区下拉列表,我们将选择与“ ES”枚举条目的“ 标签 ”属性相对应值。这很容易检索:Country.ES.label。...此示例下拉列表工作方式如下:未打开(未单击它们)时,“国家/地区”下拉列表显示为空选择,而“城市”下拉列表则完全为空。此时城市下拉列表已禁用,您无法从中选择任何选项。...我们要编写测试需要检查我们想要并已存储在Enum所有国家和城市是否存在于其相应下拉列表。还要记住,每个下拉列表中都有空条目。...因为JavaScript是在从国家/地区下拉列表选择一个国家/地区后将信息加载到城市/下拉菜单一种,所以该测试将:选择每个国家/地区,并针对每个选定国家/地区检查城市下拉列表。...在枚举,这些存储为字符串属性“ city ”列表。我们将通过首先向列表添加一个空字符串来创建期望值列表。然后,我们将使用’addAll()‘方法立即添加’ 城市 '列表所有项目。

    2.7K20

    开发 | 如何打造一个有质感小程序

    本着这个原则,我们不仅选择了开发小程序,并且在设计时候尽可能直观展示内容给用户,减少用户思考和使用成本。所以最开始版本只有一个主题列表,点进去就是主题下视频列表。...用户唯一思考就是对话题是否感兴趣——感兴趣就点进去看视频,不感兴趣就下拉看其他主题。 之后版本都是在这个基础上不断优化。...在最新版本,我们又加入了每日精选功能,这个功能对于选择困难用户比较友好,因为有时候面对很多主题真的不知道我应该看哪一个。 而每日精选是我们小编精心挑选出来视频,所以一般都不会太差。...作为兔视频小程序开发者,感觉到小程序开发友好程度和开发成本真的很低。...虽然小程序布局和功能相比 HTML 有所限制,但是其基本组件也基本够做好一个好应用了,而且体验上会比在微信里 web 应用要好一点。 即便如此,在开发过程还是会遇到一些问题

    49530

    前端基建处理之组件库优化方案

    接入storybook 初始化storybook 在原先项目中执行命令初始化storybook相关配置和依赖 npx -p @storybook/cli sb init --type vue 选择...在这个例子,所有的 args 和 argTypes 都被传递给 MyButton 组件,你可以在 Storybook UI 调整它们值。...在这个例子,backgroundColor 控件是一个颜色选择器,size 控件是一个下拉列表,选项包括 'small'、'medium' 和 'large'。...,比如笔者用到element ui,在storybook需要引入这些element组件,这里我们在.storybook/preview.js引入element,参考如下 import ElementUI...PR进行审核 以下是笔者一个合码模板,要求提交人按这种格式去填写 组件预览部署 在上面的步骤我们已经接入了storybook,可以在本地预览,如果我们要单独把storybook单独部署一个到一个站点

    37210

    21个让React 开发更高效更有趣工具

    完成用户界面后,可以选择导出到现有项目或新项目。 如果你选择导出到现有项目并选择根目录,它会将它们导出到....猴子补丁主要有以下几个用处: 在运行时替换方法、属性等 在不修改第三方代码情况下增加原来不支持功能 在运行时为内存对象增加patch而不是在磁盘源代码增加 这非常有用,不仅可以指导咱们修复项目的性能...这是react-test -library解决一个问题,因为理想情况下,你只希望您用户界面能够正常工作,并最终正确地渲染出来。 如何将数据获取到这些组件并不重要,只要它们仍然提供预期输出即可。...列表中有很多很多React组件可供咱们使用,包括选项卡,按钮,图表,表格,导航栏,下拉列表,加载微调器,日期选择器,面包屑,图标,布局等。 10....Storybook Storybook 是一个轻松地构建UI组件库。该工具启动一个实时开发服务器,支持开箱即用热重载,你可以在其中独立地实时开发React组件。 这足以作为普通文档页面: 11.

    2.4K30

    2020年值得你去试试10个React开发工具

    因此,当为你新React项目选择合适IDE,合适可视化工具甚至是合适样式时,你都会有很多选择,你该怎么选择合适?这是一件令人犯愁事儿。...在本文中,我将介绍11个关于React开发工具,以帮助你选择以及带你了解如何用它们来使你更充分使用框架。 1....安装完成后,打开Chrome开发人员工具你就能看到多出了Components和Profiler选项卡,“Components”选项能帮助你查看屏幕上组件列表以及从其他组件派生出子组件,你能够选择检查甚至编辑组件状态和属性...为了将Storybook安装到你现有的React项目中,你所要做就是: $ npx -p @storybook/cli sb init 该命令将检查你项目的结构,并尝试了解你正在使用视图层(因为Storybook...,如果你想了解如何将其用于自己项目,可以随时查看它完整文档。

    7.9K20

    Storybook 7 来了:迄今为止最大更新

    我们新 Framework API 会根据你应用程序设置自动配置 Storybook,包括你选择构建工具(Webpack 和 Vite)、渲染器(React、Vue、Angular、Svelte、...以组件为中心自动文档生成 在 Storybook 7 ,你现在可以直接将文档附加到你组件上。页面会出现在侧边栏,与组件 stories 一起显示,而不是以前选项卡式用户界面。...为了适应一些重大变化,Storybook 将在 7.x 时间范围内继续支持 MDX1 选择性支持,以确保我们用户平稳过渡。...在官方文档里可以了解更多有关这些变化信息。 改进交互测试和代码覆盖率 Storybook 迅速成为测试组件最佳选择。你可以通过向 story 附加 play 函数将其转换为测试。...通过Twitter或通过在下方邮件列表上注册,了解 Storybook 最新消息。

    50730

    21个让React 开发更高效更有趣工具

    完成用户界面后,可以选择导出到现有项目或新项目。 如果你选择导出到现有项目并选择根目录,它会将它们导出到./src/components,如下所示: ?...随着React hook发布,这个应用程序需要更新做更多工作。当然,开源是这个应用程序好处,因为它使它有可能成为未来流行开源存储库列表。 3....这是react-test -library解决一个问题,因为理想情况下,你只希望您用户界面能够正常工作,并最终正确地渲染出来。 如何将数据获取到这些组件并不重要,只要它们仍然提供预期输出即可。...列表中有很多很多React组件可供咱们使用,包括选项卡,按钮,图表,表格,导航栏,下拉列表,加载微调器,日期选择器,面包屑,图标,布局等。 10....Storybook Storybook 是一个轻松地构建UI组件库。该工具启动一个实时开发服务器,支持开箱即用热重载,你可以在其中独立地实时开发React组件。 这足以作为普通文档页面: ?

    98520

    如何在.NET电子表格应用程序创建流程图

    在企业环境,高管和经理利用流程图来规划业务流程,使他们能够识别瓶颈、优化生产力并增强决策能力……用例列表不胜枚举。然而,一个新问题出现了,这些流程图由谁来维护?流程图如何共享或协作?...安装完之后,导航到项目Form1.cs设计器: 在 VS Designer ,找到工具箱FpSpread和FpSpreadDesigner组件。...然后,使用 Spread 设计器右侧面板,从下拉列表选择Spread,查找Features,展开它,并将EnhancedShapeEngine更改为“True”。...3.将形状添加到电子表格流程图 使用 Spread Designer “插入”选项卡,选择“形状”下拉列表。 添加流程图。...选择位置后,您将看到连接点变为绿色,表明线条已连接到形状。 连接完之后样式: 6.将样式应用到形状 此步骤介绍如何应用样式主题以及如何将自定义样式应用于形状。

    25520

    2020年9月份Github上最热门开源项目

    上开源一本书籍,全书草稿已公布22章,通过这份它你将学到: 如何在计算机视觉、自然语言处理(NLP)、推荐系统、表格和时间序列数据分析创建最先进模型 如何使用全新fastai v2库和PyTorch...深度学习基础:什么是神经网络,它们是如何训练,以及它们如何进行预测 为什么以及如何使用深度学习模型,以及如何使用这些知识来提高模型准确性、速度和可靠性 如何将模型转换为实际Web应用程序,...比如输入一段川普视频,原本静止在画面史塔克们,也忍不住跟着动了起来。...你可选择锁同步不同后台。...# storybook https://github.com/storybookjs/storybook Star 53010 Storybook是UI组件开发环境,它允许开发者浏览组件库,查看每个组件不同状态

    76830

    塔荐 | 2018 年最值得关注 JavaScript 趋势

    谈到取悦开发者,不要忘了Facebook今年在BSD+Patents收钱事件遭遇史诗般失败,这惹恼了不少开发者。...Angular剩下拥护者已经表态说Angular会成为企业选择JS框架,但这一断言尚有待证实,而且在2018年未必能得到证实。...客创始人奉佑生坐不住了,“我是12月24号开始撒,我以为就我一个人撒,没想到你们都撒,不管你们撒不撒,反正我准备了10个亿,我会一直撒。”...你可能已经碰到过用Storybook来设计开源项目了,但如果想自己看看它是怎么用的话,那就看看用Storybook设计 Airbnb日期选择器 。...Facebook开发Flow是React开发者优先选择,因为它很容易跟Babel集成,在React项目中也使用得很普遍。

    1.5K80

    rancher教程(三): rancher 前端项目dashboard架构解析

    项目中,还存储了一些文档,使用storybook这个库来进行管理 操作命令都在package.json。...在package.json我看到了"@novnc/novnc": "^1.2.0", 这个包,这个依赖包我直接讲解过,它是用于实现wbe vnc功能核心包。...可以看看我之前一篇文章。 dashboard还使用d3做一些图表(竟然没有选择使用echarts),配合jquery完成一些dom操作。...日志,监控,备份,istio相关模块用到图表 components 该目录存放了项目里绝大多数业务组件以及公共组件。 config 目录里存放都是定义静态常量。比如一些下拉选项,类型。...edit,detail与list 是抽离出来编辑页面,详情页,列表页组件。属于基础组件,适用性很强。 store 存放是vuex定义状态。

    1.3K20

    2018 年前端开发五大趋势

    经过深思熟虑且久经时间考验Angular是一回事,但是Vue ……我们没想到这个开发环境成为前端技术工具列表佼佼者。 对于那些不熟悉Vue读者,让我们简要介绍一下它制胜之道。 ?...让我们举个具体列子。想象一下,你需要在正在构建社交网络框架显示帖子列表,以及用户喜好(点赞、收藏等)。在实现方面,这个例子很简单,你只需从下一个数据库端点发出请求。...特别是,得亏 StoryBook,你可以在独立环境设计和策划应用程序外 UI 组件,并且在创建新 UI 组件时它会发生变化。...它拥有几个状态(一个空列表,一个部分填充列表列表中所有元素都被填充,列表仅有一些元素被填充),我们需要适配每个元素 UI。...如前所述,React Storybook允许您在应用程序之外开发和测试UI组件,并允许团队其他开发人员继续使用它们。 也就是说,有时会加速界面开发过程。

    2.9K40

    html.dropdownlistfor_html按钮样式

    //获取直属父级列表 var parents = _MemberEditDTOService.GetParents(); var parentsItems = parents.Result.Select...(enum)绑定到ListControl(DropDownList)控件 在开发过程中一些状态表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList...)是本次主题,废话不多说了,直接代码: 首先看工具类代码: /// DropDownList 下拉选择改变,促发事件和防全局刷新(记录) 代码: DropDownList实现可输入可选择 1.js...值 把数据库绑定在dropdownlist,然后把选中dropdownlistID值保存在另外一个数据库.怎么取得dropdownlist选中ID值呢??...this.DropDownLis … MVC5后台提供Json,前台处理Json,绑定给Dropdownlist例子 MVC5后台提供Json,前台处理Json,绑定给Dropdownlist例子

    4.6K20

    ASP.NET绑定枚举类型

    在项目开发好多地方用了枚举,要把枚举显示到下拉列表我们平常方法就是在下拉列表控件中一个一个添 在项目开发好多地方用了枚举,要把枚举显示到下拉列表我们平常方法就是在下拉列表控件中一个一个添加进去...这样做也行但如果我枚举类型枚举值一旦改变,那么你就得满世界去找然后再修改很麻烦。...这里我有反射动态绑定枚举值就可以很方便做修改了,代码如下: public enum Eume { 星期一, 星期二, 星期三, 星期四, 星期五 } 绑定方法: private void BinderDays...FieldInfo field = fields[i]; ListItem item=new ListItem(field.Name); days.Items.Add(item); } } OK这样就可以了,不过可惜枚举值显示转换不支持...string类型,如果支持的话那就很爽了。

    1K10

    在java方法定义一个常量_c语言中常量和常量表达式区别

    如果可能,修改getIndex()方法,使其返回枚举而不是整数.如果无法做到这一点,则需要将索引映射到枚举元素: 鉴于以下枚举: public enum Index { ONE, TWO, THREE...} 您可以使用将索引映射到枚举元素 Index.values()[index] 给定你方法Integer getIndex(),你可以做类似的事情 switch(Index.values()[getIndex...()]) case ONE : … break; case TWO : … break; case THREE : … break; } 请注意,如果您尝试访问枚举中大于枚举元素数索引(例如,在上面的示例...我将表达式Index.values()[getIndex()]封装到类似于valueOf(int index)枚举方法,类似于默认valueOf(String s).然后,您还可以在那里处理有效数组索引检查...,以及您希望如何将它们映射到枚举元素.

    1.1K10
    领券