# rntpc_react-native-switch-pro **Repository Path**: openharmony-sig/rntpc_react-native-switch-pro ## Basic Information - **Project Name**: rntpc_react-native-switch-pro - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/openharmony-sig/rntpc_react-native-switch-pro - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-14 - **Last Updated**: 2025-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚨 **重要提示 | IMPORTANT** > > **⚠️ 此代码仓已归档。新地址请访问 [rntpc_react-native-switch-pro](https://gitcode.com/openharmony-sig/rntpc_react-native-switch-pro)。| ⚠️ This repository has been archived. For the new address, please visit [rntpc_react-native-switch-pro](https://gitcode.com/openharmony-sig/rntpc_react-native-switch-pro).** > --- > # react-native-switch-pro [![version](https://img.shields.io/npm/v/react-native-switch-pro.svg)](https://www.npmjs.com/package/react-native-switch-pro) [![downloads](https://img.shields.io/npm/dm/react-native-switch-pro.svg?style=flat)](https://www.npmjs.com/package/react-native-switch-pro) [![downloads](https://img.shields.io/npm/dt/react-native-switch-pro.svg?style=flat)](https://www.npmjs.com/package/react-native-switch-pro) A universal switch for android and iOS, it could be the best switch for react-native on Github. ## Preview     ## Feature * Almost perfect switch on react-native * Have a good performance 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 ## Install `npm install react-native-switch-pro --save` ## Usage * Sync ```JavaScript import Switch from 'react-native-switch-pro' ... render() { return ( {...}}/> ) } ... ``` * Async ```JavaScript ... render() { return ( { You can call your async module and just invoke callback(true) when succeed, callback(false) when fail. }}/> ) } ... ``` ## Props 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 style | styles that will be applied for switch container | undefined | style 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 ## Notice * You'd better not use `onSyncPress` and `onAsyncPress` together or else, only `onSyncPress` will be invoked. * `value` is used with bidirectional binding which could be redux, state and so on. In `onAsyncPress`, you should write like following (with state): ```javascript { callback(false or true, value => this.setState({value})) }} /> ``` `value => this.setState({value})` will only be invoked when result is true. ## License *MIT* ## Maybe I need your help It's my pleasure to develop the library for you. Now I'm looking for a new and nice job and if you can help me, just click [here](https://github.com/poberwong/Maybe-I-need-your-help/blob/master/README.md).