随着react-navigation的逐渐稳定,navigator光荣退休react
导航器也能够当作是一个普通的React组件,你能够经过导航器渲染通用元素,例如可配置的标题栏和选项卡栏bash
Screen navigation prop(屏幕导航属性)
:经过navigation能够完成屏幕之间的调度操做,例如打开另外一个屏幕Screen navigaionOptions(屏幕导航属性)
:经过navigationOptions能够定制导航器显示屏幕的方式(例如:头部标题,选项卡标签等)const SomeNav=createStackNavigator/createBottomTabNavigator/createMaterialTopTabNavigator({})
<SomeNav
screenProps={xxx}
ref={nav=>navigation=nav;}
onNavigationStateChange=(prevState,newState,action)=>{}
/>
复制代码
当导航器中的屏幕被打开时,他会收到一个navigation prop, navigation prop是整个导航环节中的关键一员ui
当且仅当navigator是stacknavigation时,this.props.navigation上有一些特殊功能this
navigation.navigate({routeName,params,action,key})
或navigation.navigate(routeName,params,action)
export const AppStacknavigator=createStackNavigator({
HomeScreen:{
screen:HomeScreen
},
Page1:{
screen:Page1
}
})
class HomeScreen extends React.Component{
render(){
const {navigate}=this.props.navigation;
return (
<View>
<Text>This is HomeScreen</Text>
<Button
onPress={()=>navigate('Page1',{name:"Devio"})}
title="Go to Page1"
/>
</View>
)
}
}
class Page1 extends React.Component{
render(){
const {navigate}=this.props.navigation;
return (
<View>
<Text>Page1</Text>
</View>
)
}
}
复制代码
能够经过this.props.state.params来获取经过setParams()/navigation.navigate()传递的参数spa