Открытие SideMenu при нажатии кнопки - PullRequest
0 голосов
/ 30 июня 2018

В настоящее время я пытаюсь перейти на V2 реагировать на встроенную навигацию с V1 и застрял, пытаясь найти способ переключения боковых меню на нажатие кнопки верхней панели.

Мое приложение начинается с

Navigation.setRoot({
        root: {
          sideMenu: {
            left: {
              component: {
                name: 'testApp.SideDrawer',
                passProps: {
                  text: 'This is a left side menu screen'
                }
              }
            },
            center: {
              bottomTabs: {
                ...
              }
            },
          },
        },

      });

Есть ли способ сделать это в текущей версии?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Вы можете установить логическое значение в своем компоненте для определения текущего состояния экрана бокового выдвижного ящика, а затем вы можете использовать это логическое значение для установки видимости выдвижного ящика с помощью mergeOptions. В основном переключаться! Ниже приведен фрагмент для достижения этого.

constructor(props) {
   super(props);
   this.isSideDrawerVisible = false; 
   Navigation.events().bindComponent(this);
}

navigationButtonPressed({ buttonId }) {
   if (buttonId === "openSideDrawer") {
   (!this.isSideDrawerVisible) ? this.isSideDrawerVisible = true : this.isSideDrawerVisible = false
   Navigation.mergeOptions(this.props.componentId, {
    sideMenu: {
      left: {
        visible: this.isSideDrawerVisible,
      }
    }
  });
 }
}
0 голосов
/ 03 июля 2018

Оказалось, что вы не можете использовать this.props.navigator.toggleDrawer в V2 и должны вместо этого использовать Navigator.mergeOptions, чтобы изменить видимость ящика. В моем случае:

1) Сначала назначьте Id ящик (id: leftSideDrawer)

Navigation.setRoot({
            root: {
              sideMenu: {
                left: {
                  component: {
                    name: 'testApp.SideDrawer',
                    id: 'leftSideDrawer'
                  }
                },
                center: {
                  bottomTabs: {
                    ...
                  }
                },
              },
            },
          });

2) Используйте его для изменения видимости ящика

Navigation.mergeOptions('leftSideDrawer', {
      sideMenu: {
        left: {
          visible: true
        }
      }
});
...