【问题标题】:How to navigate from one stack or module to another stack or module如何从一个堆栈或模块导航到另一个堆栈或模块
【发布时间】:2020-01-20 06:23:06
【问题描述】:

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);

只要登录过程完成,它就会导航到“主屏幕”,模块选择过程将在此完成,并且它会移动到那个特定目录的索引文件中,在那里我有另一个屏幕堆栈。

Main.js

class Main extends Component {
  Module = null;
  componentWillMount() {

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

学生模块或目录的“index.js”

const App = createStackNavigator(

  {
    Dashboard: { screen: Dashboard},
    Profile: { screen: Profile },
  },
);

export default createAppContainer(App);

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

【问题讨论】:

  • 你试过this.props.navigation('Login') onpress 注销按钮吗?
  • 是的,已经尝试过了

标签: react-native react-redux react-router react-native-android react-native-navigation


【解决方案1】:

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

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

当您执行 console.log 时,您可能会得到一个“导航”对象,其中包含一个“导航”。

【讨论】:

  • 我尝试了这两个,但它不会从一个屏幕导航到另一个屏幕。
猜你喜欢
  • 1970-01-01
  • 2019-10-08
  • 2020-07-27
  • 2013-07-23
  • 2018-05-27
  • 2022-10-17
  • 2020-04-03
  • 2019-08-08
  • 2013-04-29
相关资源
最近更新 更多