React Bootstrap Switch

React Switch - Bootstrap 4 & Material Design

Note: This documentation is for an older version of Bootstrap (v.4). A newer version is available for Bootstrap 5. We recommend migrating to the latest version of our product - Material Design for Bootstrap 5.
Go to docs v.5

Bootstrap switch is a simple component used for activating one of two predefined options. Commonly used as an on/off button.

It's mostly used in a number of various forms since they are dead simple to use and cut the time one needs to fill all the inputs.


Basic examples

Default styling for Bootstrap Switch component


            import React from 'react';

            const App = () => {
              return (
                <>
                  <div className='custom-control custom-switch'>
                    <input
                      type='checkbox'
                      className='custom-control-input'
                      id='customSwitches'
                      readOnly
                    />
                    <label className='custom-control-label' htmlFor='customSwitches'>
                      Toggle this switch element
                    </label>
                  </div>

                  <div className='custom-control custom-switch'>
                    <input
                      type='checkbox'
                      className='custom-control-input'
                      id='customSwitchesChecked'
                      defaultChecked
                    />
                    <label className='custom-control-label' htmlFor='customSwitchesChecked'>
                      Toggle this switch element
                    </label>
                  </div>
                </>
              );
            };

            export default App;

          

Material switch MDB Pro component

Material Design styling for Bootstrap Switch component


              import React, { Component } from "react";
              import { MDBSwitch } from "mdbreact";

              class App extends Component {
              state = {
                switch1: true,
                switch2: false
              }

              handleSwitchChange = nr => () => {
                let switchNumber = `switch${nr}`;
                this.setState({
                  [switchNumber]: !this.state[switchNumber]
                });
              }

              render() {
                return (
                  <>
                    <MDBSwitch checked={this.state.switch1} onChange={this.handleSwitchChange(1)} />
                    <MDBSwitch checked={this.state.switch2} onChange={this.handleSwitchChange(2)} />
                  </>
                  );
                }
              }

              export default App;
          

Checked state

Add checked prop to the <Input> component to pre-select switch when the page loads. The checked prop is a boolean attribute.

Default switch


            import React, { Component } from 'react';

            class App extends Component {
              state = {
                switch1: true,
              }
              handleSwitchChange = nr => () => {
                let switchNumber = `switch${nr}`;
                this.setState({
                  [switchNumber]: !this.state[switchNumber]
                });
              }

              render() {
                return (
                  <div className='custom-control custom-switch'>
                    <input
                      type='checkbox'
                      className='custom-control-input'
                      id='customSwitches'
                      checked={this.state.switch1}
                      onChange={this.handleSwitchChange(1)}
                      readOnly
                    />
                    <label className='custom-control-label' htmlFor='customSwitches'>
                      Toggle this switch element
                    </label>
                  </div>
                );
              }
            }

            export default App;

          

Material switch MDB Pro component


              import React, { Component } from "react";
              import { MDBSwitch } from "mdbreact";

              class App extends Component {
              state = {
                switch1: true,
              }

              handleSwitchChange = nr => () => {
                let switchNumber = `switch${nr}`;
                this.setState({
                  [switchNumber]: !this.state[switchNumber]
                });
              }

              render() {
                return (
                  <MDBSwitch checked={this.state.switch1} onChange={this.handleSwitchChange(1)} />
                  );
                }
              }

              export default App;
          

Disabled state

Add the disabled boolean attribute to the <Input> component and the custom indicator and label description will be automatically styled and blocked. A disabled <Input> component is unusable and un-clickable.

Default switch


            import React from 'react';

            const App = () => {
              return (
                <div className='custom-control custom-switch'>
                  <input
                    type='checkbox'
                    className='custom-control-input'
                    id='customSwitches'
                    disabled
                  />
                  <label className='custom-control-label' htmlFor='customSwitches'>
                    Toggle this switch element
                  </label>
                </div>
              );
            };

            export default App;

          

Material switch MDB Pro component


            import React from "react";
            import { MDBSwitch } from "mdbreact";

            const App = () => {
              return (
                <MDBSwitch disabled />
              );
            }

            export default App;
          

React Switch - API

In this section you will find advanced information about the Switch component. You will find out which modules are required, what are the possibilities of configuring the component, and what events and methods you can use in working with it.


Switch import statement

In order to use Switch component make sure you have imported proper module first.


            import { MDBSwitch } from "mdbreact";
        

API Reference: Properties

The table below shows the configuration options of the MDBSwitch component.

Name Type Default Description Example
checked Boolean false Sets the initial state of switch to ON <MDBSwitch checked />
className String Adds custom classes <MDBSwitch className="customClass" />
disabled Boolean false Disables the Switch component <MDBSwitch disabled />
labelLeft String On Sets the left label of the switch <MDBSwitch labelLeft="No" />
labelRight String Off Sets the right label of the switch <MDBSwitch labelRight="Yes" />

API Reference: Methods

The table below shows the methods which you can use with MDBSwitch component.

Name Parameters Description Example
getValue Returns MDBSwitch value on change <MDBSwitch getValue={this.handleChange} />