/** * The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. * * Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 'use strict'; var React = require('react-native'); var { Navigator, StyleSheet, ScrollView, Text, TouchableHighlight, View, } = React; var _getRandomRoute = function() { return { randNumber: Math.random(), }; }; var INIT_ROUTE = _getRandomRoute(); var ROUTE_STACK = [ _getRandomRoute(), _getRandomRoute(), INIT_ROUTE, _getRandomRoute(), _getRandomRoute(), ]; var renderScene = function(route, navigator) { return ( {route.randNumber} { navigator.jumpBack(); }}> jumpBack { navigator.jumpForward(); }}> jumpForward { navigator.jumpTo(INIT_ROUTE); }}> jumpTo initial route { navigator.push(_getRandomRoute()); }}> destructive: push { navigator.replace(_getRandomRoute()); }}> destructive: replace { navigator.pop(); }}> destructive: pop { navigator.immediatelyResetRouteStack([ _getRandomRoute(), _getRandomRoute(), ]); }}> destructive: Immediate set two routes { navigator.popToTop(); }}> destructive: pop to top ); }; class JumpingNavBar extends React.Component { render() { return ( {this.props.routeStack.map((route, index) => ( { this.props.navigator.jumpTo(route); }}> {index} ))} ); } } var JumpingNavSample = React.createClass({ render: function() { return ( } shouldJumpOnBackstackPop={true} /> ); }, }); var styles = StyleSheet.create({ scene: { backgroundColor: '#eeeeee', }, scroll: { flex: 1, }, button: { backgroundColor: '#cccccc', margin: 50, marginTop: 26, padding: 10, }, buttonText: { fontSize: 12, textAlign: 'center', }, appContainer: { overflow: 'hidden', backgroundColor: '#dddddd', flex: 1, }, navBar: { position: 'absolute', bottom: 0, left: 0, right: 0, height: 90, flexDirection: 'row', }, navButton: { flex: 1, }, navButtonText: { textAlign: 'center', fontSize: 32, marginTop: 25, }, navButtonActive: { color: 'green', }, }); module.exports = JumpingNavSample;