如何从一个堆栈或模块导航到另一个堆栈或模块



Appnavigation.js

import { createAppContainer, createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from "react-navigation-stack";
import Splash from "./components/splace";
import Login from "./components/login";
import Main from "./components/Main";
const SplashStack = createStackNavigator({
Splash: { screen: Splash, navigationOptions: { header: null } }
})
const LoginStack = createStackNavigator({
Login: { screen: Login, navigationOptions: { header: null } }
})
const MainStack = createStackNavigator({
Main: { screen: Main, navigationOptions: { header: null } }
});
const AppNavigator = createSwitchNavigator({
// Splash: SplashStack,
Login: LoginStack,
Main: MainStack
})
export default createAppContainer(AppNavigator);

每当登录过程完成时,它都会导航到"主屏幕",在那里将完成模块选择过程,它将在该特定目录的索引文件中移动,我有另一堆屏幕。

主.js

class Main extends Component {
Module = null;
componentWillMount() {
switch (this.props.user.userTypeName) {
case "Student": {
Module = require("./student").default;
break;
}
}
}
render() {
return <Module />;
}
}

学生模块或目录的"索引.js">

const App = createStackNavigator(
{
Dashboard: { screen: Dashboard},
Profile: { screen: Profile },
},
);
export default createAppContainer(App);

当我单击注销按钮时,我想从学生仪表板或个人资料屏幕移动到登录屏幕,我不知道如何实现它。

你能做一个console.log(props)吗? 然后,您可以看到如何调用导航。

你可以试试this.props.navigation.navigate('Login');而不是this.props.navigation('Login');

当你做一个控制台时.log你可能会得到一个"导航"对象,里面有一个"导航"。