Реактив-ящик-реактив-ящик всегда открывается по умолчанию при запуске приложения. - PullRequest
1 голос
/ 01 октября 2019

Я прошу прощения за то, что может оказаться очень глупым вопросом, но в течение некоторого времени я борюсь со следующей проблемой, но я новичок в реакции-нативной. Я создаю приложение реагировать на нативное, в котором я реализую навигацию по ящику реагирования точно так же, как в примере. Что происходит, когда я открываю приложение, ящик открывается. То же самое происходит, когда я копирую и вставляю пример отсюда: https://reactnavigation.org/docs/en/drawer-based-navigation.html

Это заставляет меня думать, что я что-то упустил с зависимостями. Я обновил все, что мог придумать из необходимых библиотек. Мой процессор не очень хороший, поэтому я использую свой телефон Android для тестирования.

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

Если бы вы могли помочь направить меня к некоторой информации, которая будет полезна! Спасибо всем заранее!

Ниже приведен код для примера:

import React from 'react';
import { FlatList, ActivityIndicator, Text, Header, Image, View, ScrollView, Alert, TouchableWithoutFeedback, TouchableOpacity, TouchableHighlight, StyleSheet  } from 'react-native';
import {Button, Icon, ThemeProvider} from 'react-native-elements';

import {createAppContainer, DrawerNavigator, withNavigation} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
import {createDrawerNavigator, DrawerActions, DrawerLayoutAndroid} from 'react-navigation-drawer';
.....
const Screen1PageScreenStack = createStackNavigator({
    Screen1Page: {
        screen: Screen1Page,
    }
},{
    navigationOptions: ({ navigation }) => ({
        initialRouteName: 'Screen1Page',
        headerMode: 'screen',
        drawerLabel: 'HOME',
        drawerBackgroundColor: '#0000FF',
    }
)
});

const Screen2PageScreenStack = createStackNavigator({
    Screen2Page: {
        screen: Screen2Page,
    }
},{
    navigationOptions: ({ navigation }) => ({
        initialRouteName: 'Screen2Page',
        headerMode: 'screen',
        drawerLabel: 'Categories',

    }
),
});

const appNavigator = createDrawerNavigator({
Screen1Page: {
    name: 'Screen1PageScreenStack',
    screen: Screen1PageScreenStack,
},
Screen2Page: {
    name: 'Screen2PageScreenStack',
    screen: Screen2PageScreenStack,
}
});



const MyDrawerStrugglesApp = createAppContainer(appNavigator);
export default MyDrawerStrugglesApp ;

1 Ответ

1 голос
/ 01 октября 2019

Вы можете попробовать этот код, чтобы скрыть свой ящик для нужного экрана:

const Nav = createDrawerNavigator(

{
    Home: {
      screen: AppLogin,
      navigationOptions:{
        drawerLockMode: 'locked-closed',
        drawerLabel: <Hidden />
      },

    },
}
);

Ваш класс Hidden должен быть следующим:

class Hidden extends React.Component {
  render() {
    return null;
  }
}

Вы можете изменить *Значение 1008 *, чтобы держать ящик открытым или закрытым - См. здесь для различных значений.

Также вы можете сослаться на этот ответ SO , чтобы избежать устаревания componentWillMountошибка. Надеюсь, это поможет!

...