【问题标题】:How can i navigate from a Drawer Stack to a Switch Stack in react navigation?如何在反应导航中从抽屉堆栈导航到开关堆栈?
【发布时间】:2019-07-29 20:56:50
【问题描述】:

我正在使用 React-navigation V3。如何从 contentComponent 中的 MenuDrawer 导航到 Swith Navigator 中的登录屏幕??

这是我的 switch Navigator(我的登录名)。

const AppContainer = createAppContainer(createSwitchNavigator(
  {
    VerifyActiveUser,
    ActProgramadas: MainDrawer,
    Login,
    SyncData
  },
  {
    initialRouteName: 'VerifyActiveUser',
  }
));

export default class StackNavigator extends Component{
  render(){
      return <AppContainer 
      />;
  }
}

这是我的抽屉堆栈 (MainDrawer)。 MenuDrawer 是我的自定义抽屉,从那里我想使用“退出”按钮进入登录屏幕(从 Switch Navigator)以结束我的用户会话,但我不知道如何将导航道具发送到我的抽屉的 contentComponent:

const DrawerConfig ={
    drawerWidth: WIDTH * 0.86,
    contentComponent: ({navigation}) => {
        return (<MenuDrawer navigation = { navigation } />);
    },
    contentOptions: {
        activeTintColor: 'blue',
        activeBackgroundColor: 'green'
    },
    initialRouteName: 'ActProgramadas',
    unmountInactiveRoutes: true,
    edgeWidth: WIDTH * 0.80,
    backBehavior: false
}

const MyDrawerNavigator = createDrawerNavigator({
    ActProgramadas: { screen: StackNavigator },
    ActRealizadas: { screen: StackActReal },
    ObsTecnicas: { screen: StackObs },
    ObsPendientes: { screen: StackObsPend },
    ObsRealizadas: { screen: StackObsReal },
    SyncData
}, DrawerConfig);

const AppContainer = createAppContainer(MyDrawerNavigator)

export default class DrawerNavigator extends Component{
    render(){
        return <AppContainer />;
    }
}

我可以使用 redux 将 swith 中的 navigation.navigate('Login') 属性发送到我的自定义抽屉吗??

【问题讨论】:

    标签: javascript react-native react-redux react-navigation


    【解决方案1】:

    您可以在抽屉中添加注销屏幕。屏幕是一个 React 组件,它定义了挂载时的注销行为:

    import React from 'react';
    import { View, AsyncStorage, ActivityIndicator, StatusBar } from 'react-native';
    
    
    export default class LogoutScreen extends React.Component {
      async componentDidMount() {
          await AsyncStorage.clear();
          this.props.navigation.navigate('Login');
      }
    
      render() {
        return (
          <View>
            <ActivityIndicator />
            <StatusBar barStyle='default' />
          </View>
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-03
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 2020-01-28
      • 1970-01-01
      相关资源
      最近更新 更多