A universal switch for android and iOS, it could be the best switch for react-native on Github.
- Almost perfect switch on react-native
- Have a good peformance on both iOS and Android
- Add gesture with
PanResponder - More animations to follow iOS native performance
- Support async and sync event
- Support bidirectional data binding
- Clear code style
npm install react-native-switch-pro --save
- Sync
importSwitchfrom'react-native-switch-pro'
...
render(){return(<Viewstyle={styles.container}><SwitchonSyncPress={value=>{...}}/></View>)}
...- Async
...
render(){return(<Viewstyle={styles.container}><SwitchonAsyncPress={(callback)=>{Youcancallyourasyncmoduleandjustinvokecallback(true)whensucceed,callback(false)whenfail.}}/></View>)}
...| Name | Description | Default | Type |
|---|---|---|---|
| width | width of switch | 40 | number |
| height | height of switch | 21 | number |
| value | state of switch which can be used to bidirectional binding | undefined | bool |
| disabled | whether switch is clickable | false | bool |
| circleColorActive | color for circle handler of switch when it is on | white | string |
| circleColorInactive | color for circle handler of switch when it is off | white | string |
| circleStyle | styles that will be applied for the circle | undefined | style |
| backgroundActive | color of switch when it is on | green | string |
| backgroundInactive | color of switch when it is off | '#ddd' | string |
| onSyncPress | callback when switch is clicked | () => null | func |
| onAsyncPress | has a callback with result of async | (value, callback) => {callback(true)} | func |
You'd better not use
onSyncPressandonAsyncPresstogether or else, onlyonSyncPresswill be invoked.valueis used with bidirectional binding which could be redux、state and so on.
InonAsyncPress, you should write like following (with state):<Switchvalue={this.state.value}onAsyncPress={(callback)=>{callback(falseortrue,value=>this.setState({value}))}}/>
value => this.setState({value})will only be invoked when result is true.
MIT

