Solución:
Con Expo, no debe realizar el registro de la aplicación usted mismo, sino que debe dejar que Expo lo haga, teniendo en cuenta que siempre debe exportar el componente predeterminado: También debe importar la Vista y el Botón desde react-native: por favor encuentre debajo el completo código:
import React from 'react';
import {
AppRegistry,
Text,
View,
Button
} from 'react-native';
import { StackNavigator } from 'react-navigation';
class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Text>Hello, Chat App!</Text>
<Button
onPress={() => navigate('Chat', { user: 'Lucy' })}
title="Chat with Lucy"
/>
</View>
);
}
}
class ChatScreen extends React.Component {
// Nav options can be defined as a function of the screen's props:
static navigationOptions = ({ navigation }) => ({
title: `Chat with ${navigation.state.params.user}`,
});
render() {
// The screen's current route is passed in to `props.navigation.state`:
const { params } = this.props.navigation.state;
return (
<View>
<Text>Chat with {params.user}</Text>
</View>
);
}
}
const SimpleAppNavigator = StackNavigator({
Home: { screen: HomeScreen },
Chat: { screen: ChatScreen }
});
const AppNavigation = () => (
<SimpleAppNavigator />
);
export default class App extends React.Component {
render() {
return (
<AppNavigation/>
);
}
}
Información adicional: cuando anida componentes secundarios, debe pasar la navegación como prop en el componente principal. //parent.js
<childcomponent navigation={this.props.navigation}/>
Y puedes acceder a una navegación como esta
//child.js
this.props.navigation.navigate('yourcomponent');
Referencia: https://reactnavigation.org/docs/en/connecting-navigation-prop.html
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)