Renders a boolean input.
This is a controlled component that requires an onValueChange
callback that updates the value
prop in order for the component to reflect user actions. If the value
prop is not updated, the component will continue to render the supplied value
prop instead of the expected result of any user actions.
@keyword checkbox @keyword toggle
Props
View props...
disabled bool
If true the user won't be able to toggle the switch. Default value is false.
onValueChange function
Invoked with the new value when the value changes.
testID string
Used to locate this view in end-to-end tests.
value bool
The value of the switch. If true the switch will be turned on. Default value is false.
iosonTintColor color
Background color when the switch is turned on.
iosthumbTintColor color
Color of the foreground switch grip.
iostintColor color
Background color when the switch is turned off.
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | 'use strict' ; var React = require( 'react' ); var ReactNative = require( 'react-native' ); var { Platform, Switch, Text, View } = ReactNative; var BasicSwitchExample = React.createClass({ getInitialState() { return { trueSwitchIsOn: true , falseSwitchIsOn: false , }; }, render() { return ( <View> <Switch onValueChange={(value) => this .setState({falseSwitchIsOn: value})} style={{marginBottom: 10}} value={ this .state.falseSwitchIsOn} /> <Switch onValueChange={(value) => this .setState({trueSwitchIsOn: value})} value={ this .state.trueSwitchIsOn} /> </View> ); } }); var DisabledSwitchExample = React.createClass({ render() { return ( <View> <Switch disabled={ true } style={{marginBottom: 10}} value={ true } /> <Switch disabled={ true } value={ false } /> </View> ); }, }); var ColorSwitchExample = React.createClass({ getInitialState() { return { colorTrueSwitchIsOn: true , colorFalseSwitchIsOn: false , }; }, render() { return ( <View> <Switch onValueChange={(value) => this .setState({colorFalseSwitchIsOn: value})} onTintColor= "#00ff00" style={{marginBottom: 10}} thumbTintColor= "#0000ff" tintColor= "#ff0000" value={ this .state.colorFalseSwitchIsOn} /> <Switch onValueChange={(value) => this .setState({colorTrueSwitchIsOn: value})} onTintColor= "#00ff00" thumbTintColor= "#0000ff" tintColor= "#ff0000" value={ this .state.colorTrueSwitchIsOn} /> </View> ); }, }); var EventSwitchExample = React.createClass({ getInitialState() { return { eventSwitchIsOn: false , eventSwitchRegressionIsOn: true , }; }, render() { return ( <View style={{ flexDirection: 'row' , justifyContent: 'space-around' }}> <View> <Switch onValueChange={(value) => this .setState({eventSwitchIsOn: value})} style={{marginBottom: 10}} value={ this .state.eventSwitchIsOn} /> <Switch onValueChange={(value) => this .setState({eventSwitchIsOn: value})} style={{marginBottom: 10}} value={ this .state.eventSwitchIsOn} /> <Text>{ this .state.eventSwitchIsOn ? 'On' : 'Off' }</Text> </View> <View> <Switch onValueChange={(value) => this .setState({eventSwitchRegressionIsOn: value})} style={{marginBottom: 10}} value={ this .state.eventSwitchRegressionIsOn} /> <Switch onValueChange={(value) => this .setState({eventSwitchRegressionIsOn: value})} style={{marginBottom: 10}} value={ this .state.eventSwitchRegressionIsOn} /> <Text>{ this .state.eventSwitchRegressionIsOn ? 'On' : 'Off' }</Text> </View> </View> ); } }); var examples = [ { title: 'Switches can be set to true or false' , render(): ReactElement<any> { return <BasicSwitchExample />; } }, { title: 'Switches can be disabled' , render(): ReactElement<any> { return <DisabledSwitchExample />; } }, { title: 'Change events can be detected' , render(): ReactElement<any> { return <EventSwitchExample />; } }, { title: 'Switches are controlled components' , render(): ReactElement<any> { return <Switch />; } } ]; if (Platform.OS === 'ios' ) { examples.push({ title: 'Custom colors can be provided' , render(): ReactElement<any> { return <ColorSwitchExample />; } }); } exports.title = '<Switch>' ; exports.displayName = 'SwitchExample' ; exports.description = 'Native boolean input' ; exports.examples = examples; |