Как узнать состояние видимости sideMenu - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть верхняя панель с кнопкой, которая переключает боковое меню.

Я зарегистрировал действие navigationButtonPressed, как показано ниже

navigationButtonPressed({ buttonId }) {
    switch (buttonId) {
      case 'sideMenuButtonId':
        Navigation.mergeOptions(this.props.componentId, {
          sideMenu: {
            left: {
              visible: true
            }
          }
        });
        break
      default:
        break
    }
  }

Но в этом случае кнопка делает только боковое меню.видимо, и я пытаюсь использовать его, чтобы оно открывало и закрывало меню.Таким образом, я заменил вышеупомянутое с переменным подходом, показанным ниже ..

var sideMenuVisible = false

navigationButtonPressed({ buttonId }) {
    switch (buttonId) {
      case 'sideMenuButtonId':
        sideMenuVisible = !sideMenuVisible
        Navigation.mergeOptions(this.props.componentId, {
          sideMenu: {
            left: {
              visible: sideMenuVisible
            }
          }
        });
        break
      default:
        break
    }
  }

, который прекрасно работает, если пользователь использует кнопку только для открытия и закрытия sideMenu, но пользователь также может открывать / закрывать меню,проведя пальцем, чтобы открыть меню, а также нажав меню, чтобы закрыть его.

Есть ли способ проверить видимость sideMenu, чтобы я мог правильно использовать действие, чтобы открыть / закрыть меню по команде?

1 Ответ

0 голосов
/ 28 декабря 2018

Это можно сделать гораздо проще.Думаю, вы должны создать его как состояние, потому что компонент должен знать, что он должен быть перерисован при изменении состояния.Так что-то вроде

state = { isOpen: false };

toggleSidebar = () => {
  this.setState({ isOpen: !isOpen })
}

А теперь, вам нужно вызвать функцию toggleSidebar, когда вы нажимаете кнопку

...