• A Switch should always have a visible, clickable label next to it.
  • Whenever the design allows it, use <Switch> together with <FormControlLabel> (see the story for details). It will take care of most accessiblity requirements for you.
  • If you do use a standalone <Switch>, you must provide a name for the switch using aria-label or aria-labelledby via inputProps!
  • Warning! Never place a <Switch> inside a <Button>, <ClickableCard>, <CardActionArea> or any other interactive container! It will break accessibility.
  • Parameters

    Returns ReactNode

Properties

contextTypes?: ValidationMap<any>

Lets you specify which legacy context is consumed by this component.

defaultProps?: Partial<SwitchProps>

Used to define default values for the props accepted by the component.

type Props = { name?: string }

const MyComponent: FC<Props> = (props) => {
return <div>{props.name}</div>
}

MyComponent.defaultProps = {
name: 'John Doe'
}
displayName?: string

Used in debugging messages. You might want to set it explicitly if you want to display a different name for debugging purposes.


const MyComponent: FC = () => {
return <div>Hello!</div>
}

MyComponent.displayName = 'MyAwesomeComponent'
propTypes?: WeakValidationMap<SwitchProps>

Used to declare the types of the props accepted by the component. These types will be checked during rendering and in development only.

We recommend using TypeScript instead of checking prop types at runtime.