Добавить обработчик событий для меню ящика и нижней панели вкладок в реагировать родной - PullRequest
0 голосов
/ 10 июля 2019

Я использовал Draw-native-tarbar-bottom и response-navigation Drawer, но когда я щелкаю элемент ящика в левом меню, нужно выбрать вкладку.

Чтобы сделать это, я хочу использовать Stack или Stack.AppTabs.Screen.props но как ??

import { AppRegistry } from 'react-native';
import { StackNavigator, DrawerNavigator } from 'react-navigation';

import React from 'react';

import App  from './src/app';
import AppTabs from './src/components/appTabs/appTabs';


import Drawer from './src/drawer';

console.disableYellowBox = true; 

const eventHandler = (event) => {
  Stack.AppTabs.screen.props.navigation.onGetTabHandler()(event);
};

const Stack = {
  App: { screen: App },
  AppTabs: { screen: AppTabs },
};

const DrawerRoutes = {
  StartingScreenStack: {
    screen: StackNavigator(Stack, { initialRouteName: 'App' })
  }
};
const RootNavigator =
  StackNavigator({
      Drawer: {
        name: 'Drawer',
        screen: DrawerNavigator(
          DrawerRoutes, {
            drawerWidth: 240,
            contentComponent: props => <Drawer {...props} eventHandler={eventHandler} />
          }
        ),
      },

Над кодом я пробовал, но я не могу установить реквизиты для AppTabs, кто-нибудь, пожалуйста, помогите мне.Спасибо

1 Ответ

0 голосов
/ 10 июля 2019

Наконец-то я нашел свою ошибку и исправил ее так:

var tabHandler = (that, index) => {}
var currentTab;

const setHandler = (that, func) => {
  tabHandler = func;
  currentTab = that;
}

const drawerSelectHandler = (drawer, index) => {
  drawer.props.navigation.navigate("DrawerClose");
  tabHandler(currentTab, index);
};

const Stack = {
  App: { screen: App },
  AppTabs: { screen: props => <AppTabs {...props} setTabHandler={setHandler} /> }
};
...