全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

react-native使用react-navigation进行页面跳转导航的示例

首先要确认已经配置好react-native的环境。

# 创建一个native应用,SimpleApp,然后进入项目目录
react-native init SimpleApp
cd SimpleApp


# 通过npm安装最新版本的react-navigation
npm install --save react-navigation


# 运行程序
react-native run-android

引入Stack Navigator

对于我们的应用程序,我们想要使用堆栈式导航器,因为我们想要一个概念的“堆栈”导航,其中每个新屏幕都放在堆栈顶部,然后从堆栈顶部移除一个屏幕。

 import React from 'react';
import {
 AppRegistry,
 Text,
} from 'react-native';
import { StackNavigator } from 'react-navigation';

class HomeScreen extends React.Component {
 static navigationOptions = {
  title: 'Welcome world',
 };
 render() {
  return <Text>Hello, Navigation!</Text>;
 }
}
const SimpleApp = StackNavigator({
 Home: { screen: HomeScreen },
});

AppRegistry.registerComponent('SimpleApp', () => SimpleApp);

屏幕的title在静态导航选项中是可配置的,在这里可以设置许多选项来配置导航器中的屏幕显示。

添加一个新的屏幕

 class ChatScreen extends React.Component {
 static navigationOptions = {
  title: 'Chat with Lucy',
 };
 render() {
  return (
   <View>
    <Text>Chat with Lucy</Text>
   </View>
  );
 }
}

然后在HomeScreen添加一个按钮,链接到ChatScreen

 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')}
     title="Chat with Lucy"
    />
   </View>
  );
 }

最后将添加的两个页面添加到StackNavigator中

 const SimpleApp = StackNavigator({
 Home: { screen: HomeScreen },
 Chat: { screen: ChatScreen },
});

在这里,可以传递参数,从HomeScreen传递

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>
  );
 }
}

ChatScreen接收参数

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>
  );
 }
}

添加第三个页面,Three.js, ChatScreen跳转到Three

 import React,{Component} from 'react';
import {
 AppRegistry,
 Text,
 View,
 Button,
} from 'react-native';

class Three extends React.Component {
 static navigationOptions = {
  title: 'Three Sceen',
 };
 render() {
  const { goBack } = this.props.navigation;
  return (
   <Button
    title="Go back"
    onPress={() => goBack()}
   />
  );
 }
}
export default Three;

修改ChatScreen的配置

class ChatScreen
extends React.Component {

static navigationOptions = {

title: 'Chat with Lucy',

};

render() {

const { navigate } =
this.props.navigation;

return (

<View>

<Text>Chat with Lucy</Text>

<Button

onPress={() =>
navigate('Three')}

title="to to ThreeScreen"

/>

</View>

);

}

}

最后的结果如下:

 

 

 

最后给出完整代码

文件 index.android.js

import SimpleApp
from './App';

文件App.js

import React
from 'react';

import {

AppRegistry,

Text,

View,

Button,

} from 'react-native';

import { StackNavigator }
from 'react-navigation';

import ThreeScreen
from './Three.js';

 

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')}

title="Chat with Lucy"

/>

</View>

);

}

}

 

class ChatScreen
extends React.Component {

static navigationOptions = {

title: 'Chat with Lucy',

};

render() {

const { navigate } =
this.props.navigation;

return (

<View>

<Text>Chat with Lucy</Text>

<Button

onPress={() =>
navigate('Three')}

title="to to ThreeScreen"

/>

</View>

);

}

}

 

const SimpleApp =
StackNavigator({

Home: { screen:
HomeScreen },

Chat: { screen:
ChatScreen },

Three: { screen:
ThreeScreen},

});

 

AppRegistry.registerComponent('SimpleApp', ()
=> SimpleApp);

文件Three.js

import React,{Component}
from 'react';

import {

AppRegistry,

Text,

View,

Button,

} from 'react-native';

 

class Three
extends React.Component {

static navigationOptions = {

title: 'Three Sceen',

};

render() {

const { goBack } =
this.props.navigation;

return (

<Button

title="Go back"

onPress={() =>
goBack()}

/>

);

}

}

export default
Three;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# react  # navigation跳转  # reactnative  # 页面跳转  # native页面跳转  # react-native中路由页面的跳转与传参的实例详解  # react路由跳转传参刷新页面后参数丢失的解决  # react.js实现页面登录跳转示例  # React Router 5.1.0使用useHistory做页面跳转导航的实现  # react 跳转后路由变了页面没刷新的解决方案  # react实现同页面三级跳转路由布局  # React中的页面跳转方式示例详解  # 在这里  # 放在  # 后将  # 第三个  # 最新版本  # 创建一个  # 大家多多  # 移除  # 跳转到  # 应用程序  # 器中  # 选项中  # js  # import 


相关文章: 如何选择最佳自助建站系统?快速指南解析优劣  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  北京网站制作的公司有哪些,北京白云观官方网站?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  专业公司网站制作公司,用什么语言做企业网站比较好?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何选择CMS系统实现快速建站与SEO优化?  建站之星如何快速解决建站难题?  建站之星免费版是否永久可用?  nginx修改上传文件大小限制的方法  设计网站制作公司有哪些,制作网页教程?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何彻底卸载建站之星软件?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  官网网站制作腾讯审核要多久,联想路由器newifi官网  如何选择靠谱的建站公司加盟品牌?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  建站之星导航配置指南:自助建站与SEO优化全解析  香港服务器如何优化才能显著提升网站加载速度?  制作企业网站建设方案,怎样建设一个公司网站?  网站制作服务平台,有什么网站可以发布本地服务信息?  建站之星如何取消后台验证码生成?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  淘宝制作网站有哪些,淘宝网官网主页?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何在服务器上配置二级域名建站?  如何用已有域名快速搭建网站?  ,石家庄四十八中学官网?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  建站之星备案流程有哪些注意事项?  详解jQuery中基本的动画方法  专业商城网站制作公司有哪些,pi商城官网是哪个?  网站制作员失业,怎样查看自己网站的注册者?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何快速辨别茅台真假?关键步骤解析  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何通过万网虚拟主机快速搭建网站?  如何高效完成自助建站业务培训?  行程制作网站有哪些,第三方机票电子行程单怎么开?  视频网站制作教程,怎么样制作优酷网的小视频?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  山东云建站价格为何差异显著?  ,有什么在线背英语单词效率比较高的网站?  制作农业网站的软件,比较好的农业网站推荐一下? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。