react-native-zhb-actionsheet
v1.2.0
Published
react-native ActionSheet for Android and iOS
Downloads
31
Maintainers
Readme
ActionSheet for React Native
ActionSheet component for React Native (iOS and Android)
Installation
Get started with actionsheet by installing the node module:
$ npm install react-native-zhb-actionsheet --save
Props
| prop | type | default | required | description | | ---- | ---- | ---- | ---- | ---- | | titles | array of object, [{title: string, actionStyle: oneOf(["default", "cancel", "destructive"]), action: func] | [] | yes | | | onClose | func | none | no | | | separateHeight | number | 4 | no | | | separateColor | string(color) | '#dddddd' | no | | | backgroundColor | string(color) | 'rgba(0, 0, 0, 0.4)' | no | | | containerStyle | style | {} | no | |
Methods
| method | type | description | | ---- | ---- | ---- | | show() | function | show the actionsheet | | hide() | function | hide the actionsheet |
Basic Usage
'use strict';
import React, {Component} from 'react';
import {
View,
Text,
StyleSheet
} from 'react-native';
import ActionSheet from 'react-native-zhb-actionsheet';
export default class App extends Component {
constructor(props) {
super(props);
this.defaultTitles = [{title: 'Camera', action: () => {console.log('click Camera');}},
{title: 'Choose from Album', actionStyle: 'default', action: () => {console.log('click Choose from Album');}},
{title: 'Delete', actionStyle: 'destructive', action: () => {console.log('click Delete');}},
{title: 'Cancel', actionStyle: 'cancel', action: () => {console.log('click Cancel');}}
];
this.customTitles = [{title: 'Title 1'}, {title: 'Title 2'}, {title: 'Title 3'}, {title: 'Title 4'}, {title: 'Title 5'},
{title: 'Title 6'}, {title: 'Title 7'}, {title: 'Title 8'}];
this.state = {
titles: this.defaultTitles
};
}
render() {
return (
<View style={styles.container}>
<ActionSheet
ref="picker"
titles={this.state.titles}
separateHeight={3}
separateColor="#dddddd"
backgroundColor="rgba(0, 0, 0, 0.3)"
containerStyle={{margin: 10, borderRadius: 5}}
onClose={(obj) => {console.log('action sheet closed! clicked:' + JSON.stringify(obj));}}
/>
<Text style={styles.welcome} onPress={() => {this.setState({titles: this.defaultTitles}, () => {this.refs.picker.show();})}}>
click me !!!
</Text>
<Text style={styles.welcome} onPress={() => {this.setState({titles: this.customTitles}, () => {this.refs.picker.show();})}}>
click me !!!
</Text>
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 30,
textAlign: 'center',
margin: 10
}
});
Running the Example Project
You can check out the example project with the following instructions
- Clone the repo:
git clone https://github.com/NoPPT/react-native-zhb-actionsheet.git
- Open:
cd react-native-zhb-actionsheet
and Install:npm install
- Run
npm start
to start the packager.