跳到内容
+

开关

开关是 UI 元素,允许用户在两种状态之间进行选择,最常见的是开/关。

Switch API

导入

import { Switch } from '@mui/base/Switch';
// or
import { Switch } from '@mui/base';

通过阅读这篇关于最小化包大小的指南,了解它们之间的区别。

Props

原生组件的 Props 也可用。

名称类型默认值描述
checkedbool-

如果 true,则组件为选中状态。

classNamestring-

应用于根元素上的类名。

defaultCheckedbool-

默认选中状态。当组件不受控制时使用。

disabledbool-

如果 true,则组件被禁用。

onChangefunc-

状态更改时触发的回调函数。

签名:function(event: React.ChangeEvent) => void
  • event 回调的事件源。您可以通过访问 event.target.value (string) 来获取新值。您可以通过访问 event.target.checked (boolean) 来获取新的选中状态。
readOnlybool-

如果 true,则组件为只读。

requiredbool-

如果 true,则 input 元素为必填。

slotProps{ input?: func
| object, root?: func
| object, thumb?: func
| object, track?: func
| object }
{}

用于 Switch 内部每个 slot 的 props。

slots{ input?: elementType, root?: elementType, thumb?: elementType, track?: elementType
| null }
{}

用于 Switch 内部每个 slot 的组件。可以使用 HTML 元素字符串或组件。

有关更多详细信息,请参阅下面的 Slots API


ref 被转发到根元素。

Slots

要了解如何自定义 slot,请查看覆盖组件结构指南。

Slot 名称类名默认组件描述
root.base-Switch-root'span'渲染根组件的组件。
input.base-Switch-input'input'渲染 input 组件的组件。
thumb.base-Switch-thumb'span'渲染 thumb 组件的组件。
track.base-Switch-track'span'渲染 track 组件的组件。

CSS 类

这些类名对于使用 CSS 进行样式设置很有用。当特定状态被触发时,它们会被应用到组件的 slot 上。

类名描述
.base--checked如果开关被选中,则应用于根元素的状态类
.base--disabled如果开关被禁用,则应用于根元素的状态类
.base--focusVisible如果开关具有可见焦点,则应用于根元素的状态类
.base--readOnly如果开关为只读,则应用于根元素的类