Как включить menuIcon, чтобы переключать ящикNavigator во вложенной навигации по ящикам / стекам? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть навигатор с двумя стеками внутри.Мне бы хотелось, чтобы на первом экране каждого стека отображался значок гамбургера в заголовке, но при переходе на второй экран в стеке я хочу, чтобы гамбургер был заменен кнопкой «Назад».

Как подключитьсяящик для этой кнопки переключения, и он также отображается только для первого экрана в стеке?

При редактировании моих первых экранов в стеке для включения кнопки переключения я не получаю ответа.Я следовал за процессом, описанным в

Добавить кнопку гамбургера в React Native Navigation

Это моя лучшая попытка:

import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import { createStackNavigator, createDrawerNavigator, createAppContainer } from 'react-navigation';

/ -------------- Экраны ----------------------- /

class FirstScreen extends React.Component {
  static navigationOptions = function(props) {
    return {
      title: '',
      headerLeft: <Button onPress={() => props.navigation.navigate('DrawerNavigator')} title= "=" />
    }
  };
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor:'teal' }}>
        <Text style={styles.text}>FirstScreen</Text>
        <Button
          title="Next"
          onPress={() => this.props.navigation.navigate('Second')}
        />
      </View>
    );
  }
}

class SecondScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 
'center', backgroundColor:'pink' }}>
        <Text>Second Screen</Text>
        <Button
      title="Next"
      onPress={() => this.props.navigation.navigate('Third')}
        />
      </View>
    );
  }
}

class ThirdScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: "center", justifyContent: "center", backgroundColor:'coral'  }}>
        <Text>Third Screen</Text>
        <Button
          title="Next"
          onPress={() => this.props.navigation.navigate('First')}
        />
      </View>
    );
  }
}

class FourthScreen extends React.Component {
  static navigationOptions = function(props) {
    return {
      title: '',
      headerLeft: <Button onPress={() => props.navigation.navigate('DrawerNavigator')} title= "=" />
    }
  };
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor:'orange' }}>
        <Text style={styles.text}>4th Screen</Text>
        <Button
          title="Next"
          onPress={() => this.props.navigation.navigate('Fifth')}
        />
      </View>
    );
  }
}

class FifthScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 
'center', backgroundColor:'purple' }}>
        <Text>5th Screen</Text>
        <Button
          title="Next"
          onPress={() => this.props.navigation.navigate('Sixth')}
        />
      </View>
    );
  }
}

class SixthScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: "center", justifyContent: "center", backgroundColor:'lightblue'  }}>
        <Text>6th Screen</Text>
        <Button
          title="Next"
          onPress={() => this.props.navigation.navigate('Fourth')}
        />
      </View>
    );
  }
}

/ --------------- Навигаторы стека ------------- /

const StackNavigator1 = createStackNavigator({
  First: {screen: FirstScreen},
  Second: {screen: SecondScreen},
  Third: {screen: ThirdScreen}
});

const StackNavigator2 = createStackNavigator({
  Fourth: {screen: FourthScreen},
  Fifth: {screen: FifthScreen},
  Sixth: {screen: SixthScreen}
});

/ --------------- Навигатор ящиков ------------- /

const DrawerNavigator =  createDrawerNavigator(
  {
    StackNavigator1: {
      screen: StackNavigator1
    },
   StackNavigator2: {
      screen: StackNavigator2
    }
  }
);


export default createAppContainer(DrawerNavigator);


const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...