Как эффективнее поместить этот ящик в стопку?

Я переделал мою предыдущую страницу, потому что я не мог заставить ящик работать с предоставленным ответом. Вот что я сделал вместо этого.

import { StackNavigator, DrawerNavigator } from 'react-navigation';
import Splash from './src/components/Splash';
import Login from './src/components/Login';
import SignUp from './src/components/SignUp';
import HomeScreen from './src/components/HomeScreen';
import Home from './src/components/Home';
import DeviceRegistration from './src/components/DeviceRegistration';
import Currency from './src/components/Currency';
import Beep from './src/components/Beep';
import Agreement from './src/components/Agreement';
import PoliceIconPage from './src/components/PoliceIconPage';
import ProductVerification from './src/components/ProductVerification';
import EmergencyCall from './src/components/EmergencyCall';
import CallOrAlarm from './src/components/CallOrAlarm';
import CameraRegistration from './src/components/CameraRegistration';
import NotificationHistory from './src/components/NotificationHistory';


const Navigation = StackNavigator(
  {
  Splash: { screen: Splash },
  Login: { screen: Login },
  SignUp: { screen: SignUp },
  HomeScreen: { screen: HomeScreen },
  Home: { screen: DrawerNavigator({
    Home: {
      screen: Home,
      navigationOptions: {
        drawer: {
          label: 'Login'
        }
      }
    },
    EmergencyCall: { 
      screen: EmergencyCall,
      navigationOptions: {
        drawer: {
          label: 'EmergencyCall'
        }
      }
    },
    DeviceRegistration: { 
      screen: DeviceRegistration,
      navigationOptions: {
        drawer: {
          label: 'DeviceRegistration'
        }
      }
    },
    Beep: { screen: Beep,
      navigationOptions: {
        drawer: {
          label: 'Beep'
        }
      }
    },

  })
  },
  Agreement: { screen: Agreement },
  DeviceRegistration: { screen: DeviceRegistration },
  Currency: { screen: Currency },
  Beep: { screen: Beep },
  PoliceIconPage: { screen: PoliceIconPage },
  ProductVerification: { screen: ProductVerification },
  EmergencyCall: { screen: EmergencyCall },
  CallOrAlarm: { screen: CallOrAlarm },
  CameraRegistration: { screen: CameraRegistration },
  NotificationHistory: { screen: NotificationHistory }, },
  {
    headerMode: 'none'
  });


export default Navigation;

Вот файл Home.js

import React, { Component } from 'react';
import { View, Text, TouchableOpacity } from 'react-native';

class Home extends Component {
    render() {
        console.log(this.props.navigation.state);
        return (
            <View>
                <TouchableOpacity
                    onPress={() => this.props.navigation.navigate('DrawerOpen')}
                >
                <Text>Home page yo"</Text>
                </TouchableOpacity>
            </View>
        );
    }
}


export default Home;

Ни один из руководств, которые я читал / видел / смотрел, не делал этого таким образом. Однако пока все работает так, как я хочу. Когда я нажимаю на "Текст", он открывает ящик. У меня были трудности с тем, чтобы обернуть свой мозг вокруг размещения вкладок / ящиков, вложенных в стеки, и это было единственное решение, которое я мог придумать. Я открыт для предложений о способах рефакторинга / переписывания этого, чтобы он был более эффективным и вызывал меньше проблем в будущем.

0 ответов

Другие вопросы по тегам