Задать вопрос

Как в React Native Drawer Navigation отловить событие нажатия меню?

Мне нужно в скрин передать параметр, но я не нашёл, как это сделать. Как мне при выборе определённого меню отображать не просто скрин, а скрин с параметрами? В примере у меня выбор варианта Политика, Экономика и Главная страница - все они ведут на один скрин, но мне нужно передать параметр, что б при клике на кнопку политика в том скрине отобразить статьи только о политике. Как такое сделать?

const PostNavigator = createStackNavigator(
  {
    Main: MainScreen,
    Post: PostScreen
  },
  navigatorOptions
) 

const AboutUsNavigator = createStackNavigator(
  {
    AboutUs: AboutUsScreen
  },
  navigatorOptions
)

const AboutRedNavigator = createStackNavigator(
  {
    AboutRed: AboutRedScreen
  },
  navigatorOptions
)

const MainNavigator = createDrawerNavigator(
  {
    Main: {
      screen: PostNavigator,
      navigationOptions: {
        drawerLabel: 'Главная'
      }
    },
    Category_Politik: {
      screen: PostNavigator,    
      navigationOptions: {
        drawerLabel: 'Политика'
      }
    },
    Category_Ekonomik: {
      screen: PostNavigator,
      navigationOptions: {
        drawerLabel: 'Экономика'
      }
    },
    AboutUs: {
      screen: AboutUsNavigator,
      navigationOptions: {
        drawerLabel: 'Об издании'
      }
    }
  },
  {
    initialRouteName: 'Main',
    drawerBackgroundColor: '#D2D2D2',
  }
)

export const AppNavigation = createAppContainer(MainNavigator)
  • Вопрос задан
  • 366 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
как вариант можно передать параметры
navigation.navigate('Details', {
            itemId: 42,
            otherParam: 'anything you want here',
          });

или вот так
<Stack.Screen
  name="Details"
  component={DetailsScreen}
  initialParams={{ itemId: 42 }}
/>


это все описано https://reactnavigation.org/docs/params потрате время на чтение документации
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы