Как добавить ящик боковой панели с реагировать родной навигации v2?

С реагирующей нативной навигацией v1 вы можете настроить ящик следующим образом:

drawer: {
    left: {
        screen: 'ScreenName'
    }
}

В документах о реагировании на родную навигацию они упоминают, что ящик все еще поддерживается, поддержка ящика

но нет ни одного примера его использования. Я пытался так же, как в v1, но это не сработало. Есть ли кто-нибудь, кто достиг этого как-нибудь?

1 ответ

Решение

В RNN V2 вы можете добавить Drawer, просто используя sideMenu вместо опции старого ящика, например:

Navigation.events().registerAppLaunchedListener(() => {
  Navigation.setRoot({
    root: {
      sideMenu: {
        id: "sideMenu",
        left: {
          component: {
            id: "Drawer",
            name: "navigation.Drawer"
          }
        },
        center: {
          stack: {
            id: "AppRoot",
            children: [{
              component: {
                id: "App",
                name: "navigation.AppScreen"
              }
            }]
          }
        }
      }
    }
  });
}

Взгляните на это

и чтобы закрыть ящик, используйте Navigation.mergeOptions и передайте видимое значение false, как это

<Button onPress={this.hideSideMenu}/>

hideSideMenu() {
  Navigation.mergeOptions(this.props.componentId, {
    sideMenu: {
      left: {
        visible: false
      }
    }
  });
}