一、ReactNavigation中如何实现页面跳转

因为每个屏幕组件(具有路由地址的组件)都是由App根组件自动创建并挂载的,App组件

在创建屏幕组件时,会自动传递进来一个props:   navigation

从当前屏幕跳转到其他屏幕:

this.props.navigation.navigate('屏幕地址')

注意:默认情况下,Image没有onPress事件,如果想要被点击实现跳转,

需要封装到"触摸反馈组件",如

<TouchableOpacity  onPress={  }>

<Image/>

</TouchableOpacity>

二、ReactNavigation中如何实现跳转传参

回忆:基于浏览器的Web应用中如何传参?

Angular中:

路由词典:{path:'product/detail/:pid',component:.... }

执行跳转:<a routerLink="product/details/">

注意:RN应用根本没有浏览器,没有地址栏,没有/15!

RN中的路由传参不需要修改路由词典:

     前一个组件跳转时提供路由参数:

this.props.navigation.navigate('目标地址',{pid:13,age:30})

后一个组件加载完成时读取路由参数:

this.props.navigation.state.params   ------------   { pid:13,age:30 }

或者

this.props.navigation.getParam( 'pid' , 99)              //99表示默认参数值

class  App extends  React.Component{

render(){

return (

<View>

<ScreenHeader>

{读取LoginScreen.navigationOptions来填充页头 }

</ScreenHeader>

<ContentOutlet>

{

if(当前客户端想访问login地址的话){

return  <LoginScreen  navigation={...}/>

}

}

</ContentOutlet>

</View>

)

}

}

三、ReactNavigation中如何配置页头

①仅指定标题栏文字

static   navigationOptions = {

         title: ' 标题栏文字 '

            }

②指定复杂的标题栏组件

static    navigationOptions ={

  headerTitle:<Any/>

                    headerLeft:<Any/>

                    headerRight:<Any/>

}

可以为headerTitle、headerLeft、headerRight属性赋值为任意组件/自定义组件,实现页头

自定义的功能;

此外,如果需要在页头中使用navigation对象,不能直接使用this.props.navigation(静态成员中

不能使用this),可以使用

static  navigationOptions =((obj)={

return {

   title:'商品编号:'  +obj.navigation.getParam('pid') +'的详情'

}

})

四、前端可用的异步请求技术有哪些?

①原生XHR:直接,但可能产生回调地狱

②jQuery.ajax():简单,但可能产生回调地狱

③Axios:功能强大,基于Promise

④HttpClient:功能强大,基于观察者模式

----------------------------------------------------

⑤Fetch:W3C的新标准,有望取代XHR

RN应用中没有浏览器,没有原生XHR技术;但是RN底层根据W3C Fetch标准,

提供了一套完整的Fetch API.

FetchAPI的使用方法:

     发起GET请求:  

fetch(url).then((res)=>{

return   res.json()   //等待下载完全响应消息主体,解析为JS对象

}).then((body)=>{

//body就是响应主体

}).catch((err)=>{

})

 发起POST请求:

       let  options ={

methods:'POST',

headers:{},

body:'k=v&k=v'

}

fetch(url).then((res)=>{

return   res.json()   //等待下载完全响应消息主体,解析为JS对象

}).then((body)=>{

//body就是响应主体

}).catch((err)=>{

})

2.小知识:如何在海量的代码快速定位错误  ------  调试技巧?

增量调试:注释掉最新添加的功能,如果没有错误了,说明最新添加的代码有问题;

如果仍旧有错,说明错误存在于之前的代码中;继续注释掉此新增加的功能....

功能1:

功能2:

//功能3:

//功能4:

3.如何在RN中实现类似于Web中顶部/底部固定效果?

要点:

①父容器<View>必须设定height,获取设定高度占比flex

②ScrollView天然就会占用所有可用空间,故可省略flex

③固定在底部的元素只需要声明在ScrollView下方

4.RN中如何获取当前手机屏幕的尺寸?

import  {Dimensions}   from   'react-native'

获取屏幕的宽:Dimensions.get('screen').width

获取屏幕的高:Dimensions.get('screen').height

获取窗口的宽:Dimensions.get('window').width

获取窗口的高:Dimensions.get('window').height

提示:手机中window的宽和screen的宽;screen的高等于window

的高+状态栏的高度.

ReactNavigation中如何实现页面跳转的更多相关文章

  1. PHP中常见的页面跳转方法

    转载自冠威博客 [ http://www.guanwei.org/ ]本文链接地址:http://www.guanwei.org/post/PHPnotes/04/php-redirect-metho ...

  2. Shiro中session超时页面跳转的处理

    问题描述 shiro在管理session后,在session超时会进行跳转,这里有两种情况需要考虑,一种是ajax方式的请求超时,一种页面跳转请求的超时. 本文从这两个方面分别考虑并处理. ajax请 ...

  3. java中自己对页面跳转问题的一些经验

    在eclipse中,如果你要在jsp页面跳转到servlet页面中,可以用action=“/根文件名/servlet文件名” 的方式跳转. 例如我创建了一个web application名字是test ...

  4. SpringMVC 04: SpringMVC中4种页面跳转方式

    转发和重定向的页面跳转方式 页面跳转方式,本质上只有2种方式:转发 + 重定向 但在SpringMVC的具体实现上,转发可以细分为:普通的页面转发 + 经由action方法的页面转发 重定向可以细分为 ...

  5. Nginx 使用自签名证书实现 https 反代 Spring Boot 中碰到的页面跳转问题

    问题一:页面自动跳转到 80 端口 问题描述 最近在使用Nginx反代一个Spring Boot项目中碰到了一个问题,使用 Spring Boot 中的 redirect: 进行页面跳转的时候,通过 ...

  6. 利用LI标签仿照a中Link进行页面跳转?

    点击LI时仿照A标签进行页面跳转html: <ul> <li link="/school/schooldetail/success_detail?case_id=<! ...

  7. ASP.NET MVC中如何实现页面跳转

    1,最简单的方式:超链接 以下分别是连接到HomeController控制器下的SharpL动作方法,以及百度首页.代码如下: <a href="Home\SharpL"&g ...

  8. 小程序中 wx.navigateTo 页面跳转没有反应?

    页面js文件中加入 show: function () {wx.navigateTo({url: ‘/pages/show/show’})} 这个函数 目的在于要做跳转到新的页面,但是你可能会遇到一个 ...

  9. jsp中的setHeader页面跳转备忘录

    1 <!-- response.setHeader("refresh","3;url=你想跳的页面")--> <%-- response.se ...

随机推荐

  1. 09-5.部署 EFK 插件

    09-5.部署 EFK 插件 EFK 对应的目录:kubernetes/cluster/addons/fluentd-elasticsearch $ cd /opt/k8s/kubernetes/cl ...

  2. RxJava--Buffer,GroupBy 对比

    Buffer 设定收集n个元素为一组,以下方代码为例,三个为一组,则当组满三个元素时,返回一次List数据 没组满三个元素时,如果调用onComplete,直接发送剩余元素,没调用onComplete ...

  3. 基于HTML Canvas实现“指纹识别”技术

    https://browserleaks.com/canvas 说明所谓指纹识别是指为每个设备标识唯一标识符(以下简称UUID).诸如移动原生的APP都可以通过调用相关设备API来获取相应的UUID. ...

  4. 51 NOD 1049 最大子段和 动态规划 模板 板子 DP

    N个整数组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续子段和的最大值.当所给的整数均为负数时和为0. 例如:-2,11,-4,13,-5,- ...

  5. P3306 [SDOI2013]随机数生成器(bzoj3122)

    洛谷 bzoj 特判+多测真恶心 . \(0\le a\le P−1,0\le b\le P−1,2\le P\le 10^9\) Sample Input 3 7 1 1 3 3 7 2 2 2 0 ...

  6. andorid jar/库源码解析之zxing

    目录:andorid jar/库源码解析 Zxing: 作用: 生成和识别,二维码,条形码. 栗子: 生成二维码,赋值到ImageView上 QRCodeWriter qrCodeWriter = n ...

  7. 使用jQuery完成课工场论坛列表

    1.点击我要发帖 2.显示出form表单,然后我们填入标题和选择板块 3.点击发布,隐藏表单,发帖列表中出现随机头像,刚才填入的标题和板块显示在列表中,其中还显示出了发布消息的时间 4.再一次的点击我 ...

  8. springdata jpa基本注解

    Springdata jpa的基本注解 1:@Entity @Entity注解用在实体类声明语句前,说明该Java类为实体类,将映射到指定的数据库表. 2:@Table @Table注解用在当实体类与 ...

  9. Codeforces Round #632 (Div. 2)

    Codeforces Round #632 (Div. 2) 这一场打的好差呀,这几次艰难上的分全部掉回去了,感觉就像一夜回到了解放前. 说实话,就是被B卡到了,没看到只能从小的放到大的... Lit ...

  10. 王颖奇 20171010129《面向对象程序设计(java)》第十七周学习总结

    实验十七  线程同步控制 实验时间 2018-12-10 学习总结: 1.Java通过多线程的并发运行提高系统资源利用 率,改善系统性能. 2.假设有两个或两个以上的线程共享 某个对象,每个线程都调用 ...