Reference version

This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).

Switch

A toggle control that switches between on and off states.

Android
iOS
Web
Included in Expo Go

For the complete documentation index, see llms.txt. Use this file to discover all available pages.

A controlled toggle. Pair value with onValueChange to manage state from React.

Installation

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.

Usage

Basic switch

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

With label

When label is provided, the switch is rendered alongside its text in a labeled row.

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="Enable notifications" value={notifications} onValueChange={setNotifications} /> </Host> ); }

API

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

Component

Switch

Android
iOS
Web

Type: React.Element<SwitchProps>

A toggle control that switches between on and off states.

Props for the Switch component, a toggle control.

SwitchProps

disabled

Android
iOS
Web
Optional • Type: boolean

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

label

Android
iOS
Web
Optional • Type: string

Text label displayed alongside the switch.

modifiers

Android
iOS
Web
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

Android
iOS
Web
Type: (value: boolean) => void

Called when the user toggles the switch.

testID

Android
iOS
Web
Optional • Type: string

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

value

Android
iOS
Web
Type: boolean

Whether the switch is on.