在Storybook中,你可以使用枚举(enumerations)来创建一个选择下拉列表,以便在组件的故事(stories)中进行交互式展示和测试。以下是如何实现这一功能的步骤:
枚举是一种数据类型,它允许你定义一组命名的常量值。在Storybook中,你可以使用枚举来表示组件属性(props)的可能取值。
枚举可以是简单的字符串或数字集合,也可以是更复杂的对象集合。
当你需要在Storybook中为组件属性提供一个有限的、预定义的选项列表时,可以使用枚举。
假设我们有一个组件 MyComponent
,它有一个属性 status
,这个属性可以取三个值:'active'
、'inactive'
和 'pending'
。
// enums.js
export const StatusEnum = {
ACTIVE: 'active',
INACTIVE: 'inactive',
PENDING: 'pending',
};
// 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中创建一个基于枚举的选择下拉列表,从而更方便地测试和展示组件的不同状态。
领取专属 10元无门槛券
手把手带您无忧上云