Откройте ящик, если щелкнуть значок заголовка в режиме реагирования 5 - PullRequest
1 голос
/ 24 марта 2020

Я борюсь с React Navigation 5, чтобы открыть ящик, когда я нажимаю на значок, я получаю эту ошибку undefined is not an object (evaluating 'navigation.openDrawer')

Проблема с headerRight, значок отображается правильно, но когда я нажмите на нее, я получаю ошибку выше. Даже если я получаю navigation из своего реквизита, я не понимаю, почему я не могу использовать его для вызова openDrawer()

Я также проверил navigation.toggleDrawer(), он показывает ту же ошибку.

Чего мне не хватает?

export default function App({ navigation }) {

  const Stack = createStackNavigator();
  const Drawer = createDrawerNavigator();

  const defaultOptions = {
    headerStyle: {
      backgroundColor: Colors.primary
    },
    headerTitleStyle: {
      fontFamily: "raleway-bold"
    },
    headerBackTitleStyle: {
      fontFamily: "raleway-regular"
    },
    headerTintColor: "white",
    headerRight: () => (
      <TouchableOpacity onPress={() => navigation.openDrawer()}>
        <Ionicons
          name={Platform.OS === "android" ? "md-menu" : "ios-menu"}
          size={32}
          color="white"
          style={styles.menu}
        />
      </TouchableOpacity>
    )
  };

  const createHomeStack = () => (
    <Stack.Navigator>
      <Stack.Screen
        name="Dashboard"
        component={DashboardScreen}
        options={defaultOptions}
      />
      <Stack.Screen
        name="AddExperience"
        component={AddExperienceScreen}
        options={defaultOptions}
      />
      <Stack.Screen
        name="AddEducation"
        component={AddEducationScreen}
        options={defaultOptions}
      />
    </Stack.Navigator>
  );

 return (
    <NavigationContainer>
      <Drawer.Navigator>
        <Drawer.Screen name="Home" children={createHomeStack} />
        <Drawer.Screen name="Dashboard" component={DashboardScreen} />
        <Drawer.Screen name="Profiles" component={ProfilesScreen} />
      </Drawer.Navigator>
    </NavigationContainer>
  );
}
...