RN react-navigaiton

1. react-navigation7種常見導(dǎo)航

  • createStackNavigator 普通的Navigator,屏幕上方導(dǎo)航
  • createTabNavigator:createBottomTabNavigator和 createMaterialTopTabNavigator
  • createBottomTabNavigator:屏幕下方標簽欄
  • createMaterialTopTabNavigator:屏幕上方標簽欄
  • createDrawerNavigator:抽屜效果導(dǎo)航,android左側(cè)劃入menu
  • createSwitchNavigator:一次只顯示一個頁面

2.導(dǎo)航器所支持的Props

const SomeNav = createStackNavigator/createBottomTabNavigator({
    //config
})
<SomeNav
   screenProps={xxx}
   ref={nav => {navigation = nav;}}
   onNavigationStateChange(prevState,newState,action) =>{
}
/>
  • ref:可以通過ref屬性來獲取navigation;
  • onNavigationStateChange(prevState,newState,action):每次當導(dǎo)航器的管理的state發(fā)生變化時,都會回調(diào)該方法;prevState表示變化之前的state;newState表示新的state;action表示導(dǎo)致變化的action;
  • screenProps:向子屏幕傳遞額外的數(shù)據(jù),子屏幕可以通過this.props.screenProps獲取到該數(shù)據(jù)

3.navigation包含的功能

  • navigate:跳轉(zhuǎn)到其他頁面
  • state:屏幕當前的state
  • setParams:改變路由的params;
  • goBack:關(guān)閉當前屏幕;
  • dispatch:向路由發(fā)送一個action
  • addListener: 訂閱導(dǎo)航生命周期的更新
  • isFocused:true標識屏幕獲取了焦點
  • getParam:獲取具有回退的特定參數(shù)

如果一個navigation沒有navigate,setParams以及goBack,可以使用navigationdispatch一個action去跳轉(zhuǎn)新頁面

const {navigation,theme,selectedTab} = this.props;
const resetAction = StackActions.reset({
    index:0,
   actions:[
         NavigationActions.navigate({
             routeName:'HomePage',
             params:{
               theme:theme,
               selectedTab:selectedTab
         },  
      })
   ]
})
navigation.dispatch(resetAction)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容