react example app javascript react-native

javascript - example - react native wikipedia



Ejemplo de navegaciĆ³n entre vistas en React Native Android? (3)

Encontré este ejemplo: https://rnplay.org/apps/HPy6UA

Y he escrito un tutorial al respecto: https://playcode.org/navigation-in-react-native/

Es realmente útil comprender la navegación en React Native:

''use strict''; var React = require(''react-native''); var { AppRegistry, StyleSheet, Text, View, Navigator, TouchableOpacity, } = React; var SCREEN_WIDTH = require(''Dimensions'').get(''window'').width; var BaseConfig = Navigator.SceneConfigs.FloatFromRight; var CustomLeftToRightGesture = Object.assign({}, BaseConfig.gestures.pop, { // Make it snap back really quickly after canceling pop snapVelocity: 8, // Make it so we can drag anywhere on the screen edgeHitWidth: SCREEN_WIDTH, }); var CustomSceneConfig = Object.assign({}, BaseConfig, { // A very tighly wound spring will make this transition fast springTension: 100, springFriction: 1, // Use our custom gesture defined above gestures: { pop: CustomLeftToRightGesture, } }); var PageOne = React.createClass({ _handlePress() { this.props.navigator.push({id: 2,}); }, render() { return ( <View style={[styles.container, {backgroundColor: ''green''}]}> <Text style={styles.welcome}>Greetings!</Text> <TouchableOpacity onPress={this._handlePress}> <View style={{paddingVertical: 10, paddingHorizontal: 20, backgroundColor: ''black''}}> <Text style={styles.welcome}>Go to page two</Text> </View> </TouchableOpacity> </View> ) }, }); var PageTwo = React.createClass({ _handlePress() { this.props.navigator.pop(); }, render() { return ( <View style={[styles.container, {backgroundColor: ''purple''}]}> <Text style={styles.welcome}>This is page two!</Text> <TouchableOpacity onPress={this._handlePress}> <View style={{paddingVertical: 10, paddingHorizontal: 20, backgroundColor: ''black''}}> <Text style={styles.welcome}>Go back</Text> </View> </TouchableOpacity> </View> ) }, }); var SampleApp = React.createClass({ _renderScene(route, navigator) { if (route.id === 1) { return <PageOne navigator={navigator} /> } else if (route.id === 2) { return <PageTwo navigator={navigator} /> } }, _configureScene(route) { return CustomSceneConfig; }, render() { return ( <Navigator initialRoute={{id: 1, }} renderScene={this._renderScene} configureScene={this._configureScene} /> ); } }); var styles = StyleSheet.create({ container: { flex: 1, justifyContent: ''center'', alignItems: ''center'', backgroundColor: ''#F5FCFF'', }, welcome: { fontSize: 20, textAlign: ''center'', margin: 10, color: ''white'', }, }); AppRegistry.registerComponent(''SampleApp'', () => SampleApp); module.exports = SampleApp;

Después de revisar la documentación de React Native, todavía no entiendo la mejor manera de crear vistas y navegar entre diferentes componentes.

No quiero usar ningún componente externo como:

https://github.com/Kureev/react-native-navbar/

https://github.com/23c/react-native-transparent-bar

https://github.com/superdami/react-native-custom-navigation

No necesito una barra de navegación, solo quiero configurar vistas y deslizar hacia la izquierda, hacia la derecha o abrir una vista, nada más.

Sé que es algo básico, pero no puedo encontrar ningún ejemplo útil.

Por favor, ¿alguien puede ayudarme? ¿Algún ejemplo funcional en https://rnplay.org/ ?

Gracias.


Te sugiero que uses react-navigation , puedes echar un vistazo al example Navigator Playground

Instale el módulo de navegación.

npm install --save react-navigation

Importarlo en tu aplicación

import { TabNavigator, } from ''react-navigation''; const BasicApp = TabNavigator({ Main: {screen: MainScreen}, Setup: {screen: SetupScreen}, });

... y navega

class MainScreen extends React.Component { static navigationOptions = { label: ''Home'', }; render() { const { navigate } = this.props.navigation; return ( <Button title="Go to Setup Tab" onPress={() => navigate(''Setup'')} /> ); } }


ACTUALIZACIÓN 04/2018:

Las cosas han cambiado desde mi primera respuesta, y hoy dos bibliotecas masivas son relevantes para la navegación: reaccionar-navegar y reaccionar-nativo-navegación.

Escribiré un ejemplo para react-navigation, que es una biblioteca fácil de usar y con mantenimiento completo por personas serias de la comunidad.

Primero instala la biblioteca:

yarn add react-navigation

o

npm install --save react-navigation

Luego, en el punto de entrada de su aplicación (index.js):

import Config from ''./config''; import { AppRegistry } from ''react-native''; import { StackNavigator } from ''react-navigation''; export const AppNavigator = StackNavigator(Config.navigation); AppRegistry.registerComponent(''appName'', () => AppNavigator);

Puede ver que pasamos un objeto al StackNavigator, es toda la configuración de nuestras pantallas, aquí hay un ejemplo de configuración:

import HomeScreen from "./HomeScreen"; import SettingsScreen from "./SettingsScreen"; const Config = { navigation: { Home: { screen: HomeScreen }, Settings: { screen: SettingsScreen, } } }

Ahora la aplicación conoce cada pantalla que tenemos. Simplemente podemos decirle a la función "navegar" que vaya a nuestra pantalla de configuración. Veamos nuestra pantalla de inicio:

class HomeScene extends Component { constructor(props) { super(props); } render () { return ( <View> <Button title="Go to Settings" onPress={() => this.props.navigation.navigate(''Settings'')} /> </View> ); } }

Como puede ver, la navegación hidratará los accesorios. Y desde aquí puedes hacer lo que quieras.

Vaya a la documentación de la biblioteca para ver todo lo que puede hacer: cambiar el tipo de encabezado, el título, el tipo de navegación, ...

RESPUESTA ANTERIOR:

Mire este ejemplo: https://github.com/h87kg/NavigatorDemo

Es útil y un ejemplo de Navigator bien escrito, mejor que el anterior que acaba de escribir, creo.

Principalmente mire la relación entre LoginPage.js y MainPage.js