Switches accept children, which are rendered as the label.
Switches are best used for communicating activation (e.g. on/off states), while checkboxes are best used for communicating selection (e.g. multiple table rows).
Switches, unlike checkboxes, can't have an error state.
In certain cases a visible label isn't needed. For example, a Switch located at the top of a panel which toggles the panels options on or off.
If a visible label isn't specified, an aria-label must be provided to the Switch for accessibility.
If the field is labeled by a separate element, an aria-labelledby prop must be provided using the id of the labeling element instead.
To internationalize a Switch, a localized label should be passed to the children or aria-label prop.
For languages that are read right-to-left (e.g. Hebrew and Arabic), the layout of the switch is automatically flipped.
Switches are not selected by default. The defaultSelected prop can be used to set the default state (uncontrolled).
Alternatively, the isSelected prop can be used to make the selected state controlled.
functionExample(){let[selected,setSelection]=React.useState(false);return(<><SwitchdefaultSelected>
Low power mode (uncontrolled)
</Switch><SwitchisSelected={selected}onChange={setSelection}>
Low power mode (controlled)
</Switch></>)}
functionExample(){let[selected,setSelection]=React.useState(false);return(<><SwitchdefaultSelected>
Low power mode (uncontrolled)
</Switch><SwitchisSelected={selected}onChange={setSelection}>
Low power mode (controlled)
</Switch></>)}
functionExample(){let[selected,setSelection]=React.useState(false);return(<><SwitchdefaultSelected>
Low power mode
(uncontrolled)
</Switch><SwitchisSelected={selected}onChange={setSelection}>
Low power mode
(controlled)
</Switch></>);}
Switches accept a user defined onChange prop, triggered whenever the Switch is pressed.
The example below uses onChange to alert the user to changes in state.
functionExample(){let[selected,setSelection]=React.useState(false);return(<><SwitchonChange={setSelection}>
Switch Label
</Switch><div>The Switch is on: {selected.toString()}</div></>);}
functionExample(){let[selected,setSelection]=React.useState(false);return(<><SwitchonChange={setSelection}>
Switch Label
</Switch><div>The Switch is on: {selected.toString()}</div></>);}
functionExample(){let[selected,setSelection]=React.useState(false);return(<><SwitchonChange={setSelection}>
Switch Label
</Switch><div>
The Switch is on:
{' '}{selected.toString()}</div></>);}
Whether to exclude the element from the sequential tab order. If true,
the element will not be focusable via the keyboard by tabbing. This should
be avoided except in rare scenarios where an alternative means of accessing
the element or its functionality via the keyboard is available.