📜  布尔玛按钮列表(1)

📅  最后修改于: 2023-12-03 15:09:42.182000             🧑  作者: Mango

布尔玛按钮列表

介绍

布尔玛按钮列表,也叫做开关按钮列表,通常用于多个选项之间的切换,例如一些设置中的开关控制。每个按钮都只有两种状态:打开和关闭。

用法

使用布尔玛按钮列表需要以下步骤:

  1. 导入布尔玛按钮列表的组件库。
  2. 创建一个布尔玛按钮列表组件。
  3. 在组件中添加每个按钮。
  4. 为每个按钮绑定对应的事件处理函数。
导入组件库

在使用布尔玛按钮列表之前,需要在项目中导入对应的组件库。在常见的前端框架中,可以使用以下方式导入:

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 })}
/>

其中,valueonChange 属性是必须的。

使用结果

最终,布尔玛按钮列表的效果如下图所示:

布尔玛按钮列表示例

API
SwitchList

Props

| Prop | Type | Default | Description | | ----------------- | ------------------- | ------- | ---------------------------------------------- | | children | Node | | 子元素。应该是 SwitchList.Item 组件的实例。 | | disableDragging | boolean | false | 是否禁用拖拽排序。 | | onOrderChange | (newOrder: Array) | | 拖拽排序后的事件处理函数。 |

SwitchList.Item

Props

| Prop | Type | Default | Description | | ----------- | ---------- | ------- | ----------------------------------------- | | label | string | | 选项的标签。 | | value | boolean | | 选项的当前值。 | | onChange | function | | 选项值改变时的事件处理函数。 | | className | string | | 选项的样式类。 | | style | object | | 选项的样式。 | | disabled | boolean | false | 是否禁用该选项。 | | dragHandle| Node | | 拖拽排序时的手柄(会自动隐藏)。不设置则禁用选项拖拽排序。|

Methods

| 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>
  )
}
参考资料