[英]How to navigate one page to another page using React Native?
my scenario, I am trying to navigate login.js
page to home.js
page.我的场景,我试图将
login.js
页面导航到home.js
页面。 I need to implement navigation
but need to hide into login.js but need to show into home.js.我需要实现
navigation
但需要隐藏到 login.js 中但需要显示到 home.js 中。 Here, login button click to navigate home page.在这里,登录按钮单击以导航主页。 The navigation should support iOS and Android both platform.how to achieve this?
导航应该支持iOS和Android两个平台。如何实现?
App.js应用程序.js
import React, { Component } from 'react';
import { StyleSheet, Text, View} from 'react-native';
import Login from './components/Login';
export default class App extends Component {
render(){
return(
<View style={styles.container}>
<Login/>
</View>
);
}
}
Login.js登录.js
import React from 'react';
import { View, Text, StyleSheet, TextInput, TouchableOpacity, ActivityIndicator } from 'react-native';
export default class Login extends React.Component {
state = {
isLoading: false
};
showLoader = () => {
this.setState({ isLoading: true });
};
// Login Click Action
loginclick = () => {
//this.showLoader();
console.log('Login Clicked...'); // Need to move home page
}
render() {
return (
<View style={styles.container}>
<TouchableOpacity style={styles.button} onPress={(this.loginclick)}>
<Text style={styles.btntext}>Sing In</Text>
</TouchableOpacity>
<View style={styles.activityview, styles.horizontal}>
<ActivityIndicator size="large" animating={this.state.isLoading} color='#fff' />
</View>
</View>
);
}
}
Package.json包.json
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@react-native-community/masked-view": "0.1.5",
"expo": "~36.0.0",
"react": "~16.9.0",
"react-dom": "~16.9.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
"react-native-gesture-handler": "~1.5.0",
"react-native-reanimated": "~1.4.0",
"react-native-safe-area-context": "0.6.0",
"react-native-safe-area-view": "^1.0.0",
"react-native-screens": "2.0.0-alpha.12",
"react-native-web": "~0.11.7",
"react-navigation": "^1.6.1",
"react-navigation-stack": "^2.0.16"
},
"devDependencies": {
"babel-preset-expo": "~8.0.0",
"@babel/core": "^7.0.0"
},
"private": true
}
You can use React Navigation for moving different screens.你可以使用React Navigation来移动不同的屏幕。
Change your App.js
as below in order to handle navigation如下更改您的
App.js
以处理导航
import React from "react";
import { createAppContainer } from "react-navigation";
import { createStackNavigator } from "react-navigation-stack";
import Login from "./components/Login";
import Home from "import your home component";
const RootStack = createStackNavigator(
{
Login: Login,
Home: Home
},
{
initialRouteName: "Login"
}
);
const AppContainer = createAppContainer(RootStack);
export default class App extends React.Component {
render() {
return <AppContainer />;
}
}
After that, you can handle navigation to Home
from Login
changing your loginclick
function as below之后,您可以处理从
Login
到Home
导航,如下所示更改您的Login
loginclick
功能
loginclick = () => {
this.props.navigation.navigate('Home')
}
Hope this helps you.希望这对你有帮助。 Feel free for doubts.
如有疑问,请放心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.