Как запрограммировать обработчик события нажатия кнопки TopBar? - PullRequest
0 голосов
/ 25 июня 2019

Я использую Wix's response-native-navigation.

их документация гласит, что компонент может прослушивать события верхних кнопок, используя Navigation.events().bindComponent(this);, а также navigationButtonPressed({ buttonId }) { // will be called when "buttonOne" is clicked }

однако ничего не происходит. даже не оригинальное поп-событие.

export default class Lobby extends React.Component {
  static options(passProps) {
    topBar: {
      title: {
        text: "Lobby"
      },
      visible: true,
      leftButtons: [
        {
          id: "testId",
          text: "Leave",
          color:"red"
        }
      ]
    }
  }
  constructor(props) {
    super(props);
    Navigation.events().bindComponent(this);
  }
  navigationButtonPressed({ buttonId }) {
    switch(buttonId) {
      case: "testId":
        alert("test");
        socket.emit("disconnect");
        break;
    }
  }

Navigation успешно импортировано.

По крайней мере, я ожидаю, что событие сокета будет получено сервером, я также хочу, чтобы страница всплывала и переходила на предыдущую страницу.

отображается предупреждение, но серверное событие вообще не принимается.

1 Ответ

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

У меня был такой же блокиратор, и вот как я это исправил.Я использовал registerNavigationButtonPressedListener () и прошел навигациюButtonPressed

`constructor(props) {
    super(props);
    Navigation.events().registerNavigationButtonPressedListener(this.navigationButtonPressed);
  }
  navigationButtonPressed({ buttonId }) {
    switch(buttonId) {
      case: "testId":
        alert("test");
        socket.emit("disconnect");
        break;
    }`
...