React Navigation导航器之createSwitchNavigator

本文详细介绍了React Navigation中SwitchNavigator的使用方法,包括其API参数、适用场景及示例代码。通过具体示例展示了如何创建SwitchNavigator并设置backBehavior属性,以实现从登录页跳转至首页后,按下返回键不会退回到登录页的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API

createSwitchNavigator(RouteConfigs,SwitchNavigatorConfig)

参数说明

RouteConfigs

查看这里

SwitchNavigatorConfig

  1. initialRouteName:第一次进入switchNavigator时显示的第一个页面,它的值应该是RouteConfigs的一个key
  2. resetOnBlur:Boolean离开当前SwitchNavigator是否重置所有导航器的状态,默认true
  3. backBehavior:用于设置按下返回键时的动作。值为"initialRoute"时按下返回键回到initialRouteName对应的页面;值为"none"时返回上一页。默认"none"

适用场景

当backBehavior的值为默认值none时,从注册或登录页面跳转到首页后按下系统返回键不退回到注册或登录页面

示例

App.js

import React from 'react'
import {
    createStackNavigator,
    createSwitchNavigator,
    createAppContainer
} from 'react-navigation'
import Home from "./components/Home";
import Login from "./components/Login";

const LoginNavigator = createStackNavigator({
    Login:{
        screen:Login,
        navigationOptions: {
            title: '登录'
        }
    }
},{
    headerLayoutPreset:"center"
})
const HomeNavigator = createStackNavigator(
    {
        Home: {
            screen: Home,
            navigationOptions: {
                title: "首页"
            }
        }
    },{
        headerLayoutPreset:"center"
    }
)
const SwitchNavigator = createSwitchNavigator({
    Login: {
        screen:LoginNavigator
    },
    Home:{
        screen:HomeNavigator
    }
},{
    backBehavior:"none"
})
export default createAppContainer(SwitchNavigator)

Login.js

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

export default class Login extends React.Component{
    render(){
        return(
            <View>
                <Text>Login</Text>
                <Button title={'登录'} onPress={()=>{
                    this.props.navigation.navigate("Home")
                }}/>
            </View>
        )
    }
}

Home.js

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

export default class Home extends React.Component{
    render(){
        return (
            <View>
                <Text>Home</Text>
                <Text>此时按下返回键,退出应用</Text>
            </View>
        )
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值