У меня есть следующий собственный код реакции:
import React from 'react';
import {AppRegistry} from 'react-native';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator} from 'react-navigation-stack';
import { createDrawerNavigator} from 'react-navigation-drawer';
import {View,Text,Button} from 'react-native';
class Sub extends React.Component {
static navigationOptions = {
headerTitle: () => (
<Button
onPress={() => this.props.navigation.dangerouslyGetParent().openDrawer()}
title="Open Drawer"
/>
),
};
render() {
const props = this.props;
return (
<View>
<Text>{props.navigation.state.routeName}</Text>
<Button onPress={_=>props.navigation.navigate("Sub1")} title="Sub1" />
<Button onPress={_=>props.navigation.navigate("Sub2")} title="Sub2" />
</View>
);
}
}
const SubRoutes = {
"Sub1":Sub
};
const SubNavigator = createStackNavigator(SubRoutes);
const SubApp = createAppContainer(SubNavigator);
const MainRoutes = {
"Main1":SubApp
};
const MainNavigator = createDrawerNavigator(MainRoutes);
const App = createAppContainer(MainNavigator);
AppRegistry.registerComponent("nav", () => App);
Он представляет StackNavigator как дочерний элемент DrawerNavigator. На экране Sub
у меня есть кнопка headerTitle
с кнопкой, при нажатии которой я хочу открыть меню ящика навигатора ящиков. Прямо сейчас нажатие на кнопку просто дает ошибку, что Sub.props.navigation
не существует.
Как заставить меню ящика открываться при нажатии кнопки заголовка заголовка?