SwitchNavigator, using react-navigation includes login page and a drawer navigation. After the session expires, use this.props.navigation.navigate ("login") to jump to the login page to log in again. Login is successful but does not jump.
import React, { Component } from "react";
import {
AppRegistry,
Text,
View,
Button,
StyleSheet,
Image,
} from "react-native";
import { createDrawerNavigator,SwitchNavigator } from "react-navigation";
import { CurrentTaskRoot } from "../page/currentTask/CurrentTaskRoot";
import { ApplyRoot } from "../page/apply/ApplyRoot";
import { ApprovalRoot } from "../page/approval/ApprovalRoot";
import { TaskSchedulingRoot } from "../page/taskScheduling/TaskSchedulingRoot";
import { RefuelRecordRoot } from "../page/refuelRecord/RefuelRecordRoot";
import { HandoverCarRoot } from "../page/handoverCar/HandoverCarRoot";
import { AddressBookRoot } from "../page/addressBook/AddressBookRoot";
import { SettingRoot } from "../page/setting/SettingRoot";
import Login from "../page/Login";
const DrawerNav = createDrawerNavigator({
CurrentTaskRoot: {
screen: CurrentTaskRoot,
navigationOptions: {
drawerLabel: ""
}
},
ApplyRoot: {
screen: ApplyRoot,
navigationOptions: {
drawerLabel: ""
}
},
ApprovalRoot: {
screen: ApprovalRoot,
navigationOptions: {
drawerLabel: ""
}
},
TaskSchedulingRoot: {
screen: TaskSchedulingRoot,
navigationOptions: {
drawerLabel: ""
}
},
RefuelRecordRoot: {
screen: RefuelRecordRoot,
navigationOptions: {
drawerLabel: ""
}
},
HandoverCarRoot: {
screen: HandoverCarRoot,
navigationOptions: {
drawerLabel: ""
}
},
AddressBookRoot: {
screen: AddressBookRoot,
navigationOptions: {
drawerLabel: ""
}
},
SettingRoot: {
screen: SettingRoot,
navigationOptions: {
drawerLabel: ""
}
}
}, {
drawerWidth: 150, //
drawerPosition: "left", //
initialRouteName: "HandoverCarRoot", //
contentOptions: {
activeTintColor: "-sharp028ce5", //
activeBackgroundColor: "-sharpfff", //
inactiveTintColor: "-sharp000", //
inactiveBackgroundColor: "-sharpfff", //
}
});
export const Navigator = SwitchNavigator({
Login: Login,
Draw: DrawerNav
},
{
initialRouteName: "Login",
});
//
getList(){
if(this.state.recordCount > 0) {
this.setState({
"type": 2
})
}
let fd = new FormData();
fd.append("session",this.state.session);
fd.append("carId",this.state.carId);
fd.append("type",this.state.type.toString());
fd.append("updateTime",this.state.updateTime.toString());
fd.append("recordCount",this.state.recordCount);
HttpUtil.post("/carManage/phone/carOils/findAllCarOils",fd)
.then(result=>{
if(result.code == 1) {
let d = JSON.parse(result.content);
if(d.length>0) {
this.setState({
data: d,
recordCount : this.state.recordCount+d.length,
isRefresh: false,
showFoot:0
})
}else{
this.setState({
isRefresh:false,
showFoot:1
})
}
}else if(result.code == 2) {
this.setState({isRefresh:false,showFoot:0});
Alert.alert("",result.content)
}else if(result.code == 3) {
this.setState({isRefresh:false,showFoot:0});
Alert.alert("",result.content);
this.props.navigation.navigate("Login");//session
} else {
this.setState({isRefresh:false,showFoot:0})
Alert.alert("",result.content)
}
})
}
HttpUtil.post("/carManage/phone/login/checkLogin",fd)
// .then(()=>Toast.loading("Loading...",0))
.then(result=>{
if(result.code == 1){
Toast.success("", 1);
let d = JSON.parse(result.content);
storage.save({
key: "session",
data: d.session
});
storage.save({
key: "userName",
data: this.state.userName
});
storage.save({
key: "imgUrl",
data: {
meetImage:d.meetImage,
returnImage:d.returnImage,
oilsImage:d.oilsImage,
applyCarImage:d.applyCarImage
}
});
this.props.navigation.navigate("Draw");
}else if(result.code == 2){
Toast.info(result.content,2);
}else if(result.code == 3){
Toast.fail(result.content,2);
}else if(result.code == 4){
Toast.fail(result.content,2);
}
})
.catch(error=>{
this.setState({
result: JSON.stringify(error)
})
})