У меня есть навигатор с двумя стеками внутри.Мне бы хотелось, чтобы на первом экране каждого стека отображался значок гамбургера в заголовке, но при переходе на второй экран в стеке я хочу, чтобы гамбургер был заменен кнопкой «Назад».
Как подключитьсяящик для этой кнопки переключения, и он также отображается только для первого экрана в стеке?
При редактировании моих первых экранов в стеке для включения кнопки переключения я не получаю ответа.Я следовал за процессом, описанным в
Добавить кнопку гамбургера в 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',
},
});