📅  最后修改于: 2023-12-03 15:09:42.182000             🧑  作者: Mango
布尔玛按钮列表,也叫做开关按钮列表,通常用于多个选项之间的切换,例如一些设置中的开关控制。每个按钮都只有两种状态:打开和关闭。
使用布尔玛按钮列表需要以下步骤:
在使用布尔玛按钮列表之前,需要在项目中导入对应的组件库。在常见的前端框架中,可以使用以下方式导入:
import { SwitchList } from 'boolma'
在程序中创建布尔玛按钮列表组件的实例,并设置需要的属性和事件处理函数。
render() {
return (
<SwitchList>
<SwitchList.Item
label="是否启用功能A?"
value={this.state.featureAEnabled}
onChange={(value) => this.setState({ featureAEnabled: value })}
/>
<SwitchList.Item
label="是否开启选项B?"
value={this.state.optionBEnabled}
onChange={(value) => this.setState({ optionBEnabled: value })}
/>
...
</SwitchList>
)
}
每个布尔玛按钮列表的选项都需要设置对应的属性和事件处理函数。以下是常见的属性:
label
:选项的标签。value
:选项的当前值。onChange
:选项值改变时的事件处理函数。<SwitchList.Item
label="是否启用功能A?"
value={this.state.featureAEnabled}
onChange={(value) => this.setState({ featureAEnabled: value })}
/>
其中,value
和 onChange
属性是必须的。
最终,布尔玛按钮列表的效果如下图所示:
| Prop | Type | Default | Description |
| ----------------- | ------------------- | ------- | ---------------------------------------------- |
| children
| Node
| | 子元素。应该是 SwitchList.Item
组件的实例。 |
| disableDragging
| boolean
| false
| 是否禁用拖拽排序。 |
| onOrderChange
| (newOrder: Array)
| | 拖拽排序后的事件处理函数。 |
| Prop | Type | Default | Description |
| ----------- | ---------- | ------- | ----------------------------------------- |
| label
| string
| | 选项的标签。 |
| value
| boolean
| | 选项的当前值。 |
| onChange
| function
| | 选项值改变时的事件处理函数。 |
| className
| string
| | 选项的样式类。 |
| style
| object
| | 选项的样式。 |
| disabled
| boolean
| false
| 是否禁用该选项。 |
| dragHandle
| Node
| | 拖拽排序时的手柄(会自动隐藏)。不设置则禁用选项拖拽排序。|
| Method | Description |
| ---------- | ----------------------------------------------------- |
| getValue
| 获取选项当前的值。 |
| setValue
| 设置选项的值。参数是选项的新值,不需要返回任何值。 |
import React, { useState } from 'react'
import { SwitchList } from 'boolma'
function App() {
const [featureAEnabled, setFeatureAEnabled] = useState(false)
const [optionBEnabled, setOptionBEnabled] = useState(true)
return (
<SwitchList>
<SwitchList.Item
label="是否启用功能A?"
value={featureAEnabled}
onChange={(value) => setFeatureAEnabled(value)}
/>
<SwitchList.Item
label="是否开启选项B?"
value={optionBEnabled}
onChange={(value) => setOptionBEnabled(value)}
/>
<SwitchList.Item
label="禁用选项C?"
value={false}
onChange={() => {}}
disabled
/>
<SwitchList.Item
label="可拖拽排序选项D?"
value={true}
onChange={() => {}}
dragHandle={<span>拖拽手柄</span>}
/>
</SwitchList>
)
}