npm install react-native-side-menu
var SideMenu = require('react-native-side-menu');
var ContentView = React.createClass({
render: function() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.ios.js
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+Control+Z for dev menu
</Text>
</View>
);
}
});
var Application = React.createClass({
render: function() {
var menu = <Menu navigator={navigator}/>;
return (
<SideMenu menu={menu}>
<ContentView/>
</SideMenu>
);
}
});
Clicking on any menu item should cause closing menu. It can be done by using menuActions
which are passed thru props to menu
component. Example looks like this:
var Menu = React.createClass({
about: function() {
this.props.menuActions.close();
this.props.navigator.push({...});
},
render: function() {
return (
<View>
<Text>Menu</Text>
<Text onPress={this.about}>About</Text>
</View>
);
}
});
menuActions
consists of following method(s):
close
(Void) - Close menutoggle
(Void) - Toggle menu (close / open)open
(Void) - Open menu
menu
(React.Component) - Menu componentanimation
(spring|linear|easeInOut) - Type of slide animation. Default is "linear".openMenuOffset
(Number) - Content view left margin if menu is openedhiddenMenuOffset
(Number) - Content view left margin if menu is hiddentoleranceX
(Number) - X axis tolerancetoleranceY
(Number) - Y axis tolerancedisableGestures
(Bool) - Disable whether the menu can be opened with gestures or notonChange
(Function) - Callback on menu open/close. Is passedisOpen
as an argument.menuPosition
(String) - either 'left' or 'right', defaults to 'left'touchToClose
(Bool) - Allows for touching the partially hidden view to close the menu. Defaults tofalse
.
In progress
Creating this component has been inspired by @khanghoang's RNSideMenu example.
Also, thanks to @ericvicenti for help with figuring out with setNativeProps
Feel free to contact me in twitter or create an issue