Reference version

This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

开关

在开启和关闭状态之间切换的切换控件。

Android
iOS
Web
Included in Expo Go
Recommended version:
~57.0.0

一个受控切换。将 valueonValueChange 配对,以从 React 管理状态。

安装

Terminal
npx expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

用法

基本开关

SwitchExample.tsx
import { useState } from 'react'; import { Host, Switch } from '@expo/ui'; export default function SwitchExample() { const [enabled, setEnabled] = useState(false); return ( <Host matchContents> <Switch value={enabled} onValueChange={setEnabled} /> </Host> ); }

带标签

当提供 label 时,开关会与其文本一起以带标签的行形式渲染。

LabeledSwitchExample.tsx
import { useState } from 'react'; import { Host, Switch } from '@expo/ui'; export default function LabeledSwitchExample() { const [notifications, setNotifications] = useState(true); return ( <Host style={{ flex: 1 }}> <Switch label="启用通知" value={notifications} onValueChange={setNotifications} /> </Host> ); }

API

import { Switch } from '@expo/ui';

Component

Switch

Type: React.Element<SwitchProps>

A toggle control that switches between on and off states.

Props for the Switch component, a toggle control.

SwitchProps

disabled

Optional • Type: boolean

Whether the switch is disabled. Disabled switches do not respond to user interaction.

label

Optional • Type: string

Text label displayed alongside the switch.

modifiers

Optional • Type: ModifierConfig[]

Platform-specific modifier escape hatch. Pass an array of modifier configs from @expo/ui/swift-ui/modifiers or @expo/ui/jetpack-compose/modifiers.

onValueChange

Type: (value: boolean) => void

Called when the user toggles the switch.

testID

Optional • Type: string

Identifier used to locate the component in end-to-end tests.

value

Type: boolean

Whether the switch is on.