React Native - Доступ к навигации по ящикам вне AppNavigator - PullRequest
0 голосов
/ 25 октября 2019
  App.js 
    <Store>
      <Navbar />
      <AppNavigator ref={navigatorRef => {
          NavigationService.setTopLevelNavigator(navigatorRef);
        }} />
    </Store> 

Я хочу получить доступ к

 props.navigation.openDrawer();

из navbar, но я получаю

undefined is not an object (evaluating 'props.navigation.openDrawer')

onPress
    Navbar.js:70:29
    etc..

Как мне разрешить NavBar получить доступ к ящику?

1 Ответ

1 голос
/ 26 октября 2019

Я полагаю, что вы следуете Навигация без навигационной опоры (если вы этого не сделаете, то вы должны в вашем случае). Затем в NavigationService.js добавьте метод openDrawer

// NavigationService.js

import { DrawerActions } from 'react-navigation-drawer';

...

// add this function
function openDrawer(routeName, params) {
  _navigator.dispatch(DrawerActions.openDrawer());
}


export default {
  ...
  // and export it
  openDrawer
};

, затем вместо props.navigation.openDrawer() используйте

NavigationService.openDrawer()

, не забудьте выполнить соответствующий импорт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...