React-Native(Navigator)

Navigator簡單使用

這是一個簡單的例子,用Navigator來跳轉頁面纵潦,頁面之間傳遞參數(shù) (代碼是ES6語法寫的):

class RN_1 extends Component {   
 render(){      
  return(         
   <Navigator       
     initialRoute={{name:'kk', component:List}}            
        configureScene={(route)=>{          
          return Navigator.SceneConfigs.VerticalDownSwipeJump;              
  }}            
    //渲染場景   
             renderScene={(route, navigator)=>{  
                  //便利route所有參數(shù)    
                return<route.component {...route.params} navigator={navigator} />     
           }}  
          />   
     );   
 }}

上述代碼解釋:
initialRoute={{name:'kk', component:List}}

  • 初始化路由:name就是二級頁面的title泪掀,component是import二級頁面
    eg:import Like from './Like';

configureScene={(route)=>{ return Navigator.SceneConfigs.VerticalDownSwipeJump; }}

  • 配置場景(設置push方式
    還有一種push方式:VerticalUpSwipeJump

renderScene={(route, navigator)=>{   return<route.component {...route.params} navigator={navigator} /> }}
  • 遍歷route所有參數(shù)
    針對于route中所有的參數(shù)遍歷听绳,傳值入List.js

下面是官方給出的API方法。
1. getCurrentRoutes() - 獲取當前棧里的路由异赫,也就是push進來椅挣,沒有pop掉的那些。
2. jumpBack() - 跳回之前的路由塔拳,當然前提是保留現(xiàn)在的鼠证,還可以再跳回來,會給你保留原樣靠抑。
3. jumpForward() - 上一個方法不是調到之前的路由了么量九,用這個跳回來就好了。
4. jumpTo(route) - 跳轉到已有的場景并且不卸載孕荠。
5. push(route) - 跳轉到新的場景娩鹉,并且將場景入棧,你可以稍后跳轉過去
6. pop() - 跳轉回去并且卸載掉當前場景
7. replace(route) - 用一個新的路由替換掉當前場景
8. replaceAtIndex(route, index) - 替換掉指定序列的路由場景
9. replacePrevious(route) - 替換掉之前的場景
10. resetTo(route) - 跳轉到新的場景稚伍,并且重置整個路由棧
11. immediatelyResetRouteStack(routeStack) - 用新的路由數(shù)組來重置路由棧
12. popToRoute(route) - pop到路由指定的場景弯予,在整個路由棧中,處于指定場景之后的場景將會被卸載个曙。
13. popToTop() - pop到棧中的第一個場景锈嫩,卸載掉所有的其他場景。

附注Code
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';import React, {Component} from 'react';import {    AppRegistry,    StyleSheet,    Navigator,    Text,    View} from 'react-native';import Like from './Like';import Swiper_Test from './Swiper_Test';class RN_1 extends Component {    render(){        return(            <Navigator                //初始化路由                initialRoute={{name:'kk', component:List}}                //配置場景(設置push方式)                configureScene={(route)=>{                    return Navigator.SceneConfigs.VerticalUpSwipeJump;                }}                //渲染場景                renderScene={(route, navigator)=>{                    //便利route所有參數(shù)                    return<route.component {...route.params} navigator={navigator} />                }}            />        );    }}class List extends Component {    constructor(props){        super(props);        this.state={            id:null,        }    }    push(){        const {navigator} = this.props;        if (navigator){            navigator.push({                name:'haha',                component:Swiper_Test,                //往二級界面?zhèn)鲄ⅲㄐ枰诔跏蓟x)                params:{                    id:this.props.id                }            });        }    }    render(){        return(            <View style={{flex:1, alignItems:'center', marginTop:25}}>                <Text style={{fontSize:25, color:'red'}}                      onPress={this.push.bind(this)}>PUSH</Text>            </View>        );    }}const styles = StyleSheet.create({    flex:{        flex:1,        marginTop:20,    },    list_item:{        height:40,        marginLeft:10,        marginRight:10,        fontSize:20,        borderBottomWidth:1,        borderBottomColor:'#ddd',        justifyContent:'center',    },    center:{    },    wrapper: {    },    slide1: {        flex: 1,        justifyContent: 'center',        alignItems: 'center',        backgroundColor: '#9DD6EB',    },    slide2: {        flex: 1,        justifyContent: 'center',        alignItems: 'center',        backgroundColor: '#97CAE5',    },    slide3: {        flex: 1,        justifyContent: 'center',        alignItems: 'center',        backgroundColor: '#92BBD9',    },    text: {        color: '#fff',        fontSize: 30,        fontWeight: 'bold',    }});AppRegistry.registerComponent('RN_1', ()=> RN_1);```


最后附上reacrnative中文網(wǎng)鏈接地址:[Navigator](http://reactnative.cn/docs/0.38/navigator.html#content)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末垦搬,一起剝皮案震驚了整個濱河市呼寸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猴贰,老刑警劉巖对雪,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異米绕,居然都是意外死亡瑟捣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門栅干,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迈套,“玉大人,你說我怎么就攤上這事碱鳞∩@睿” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贵白。 經常有香客問我率拒,道長,這世上最難降的妖魔是什么禁荒? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任俏橘,我火速辦了婚禮,結果婚禮上圈浇,老公的妹妹穿的比我還像新娘寥掐。我一直安慰自己,他們只是感情好磷蜀,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布召耘。 她就那樣靜靜地躺著,像睡著了一般褐隆。 火紅的嫁衣襯著肌膚如雪污它。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天庶弃,我揣著相機與錄音衫贬,去河邊找鬼。 笑死歇攻,一個胖子當著我的面吹牛固惯,可吹牛的內容都是我干的。 我是一名探鬼主播缴守,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼葬毫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屡穗?” 一聲冷哼從身側響起贴捡,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎村砂,沒想到半個月后烂斋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡础废,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年汛骂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片色迂。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡香缺,死狀恐怖手销,靈堂內的尸體忽然破棺而出歇僧,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布诈悍,位于F島的核電站祸轮,受9級特大地震影響,放射性物質發(fā)生泄漏侥钳。R本人自食惡果不足惜适袜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舷夺。 院中可真熱鬧苦酱,春花似錦、人聲如沸给猾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敢伸。三九已至扯饶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間池颈,已是汗流浹背尾序。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躯砰,地道東北人每币。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像琢歇,于是被迫代替她去往敵國和親脯爪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容