如何对TopBar按钮按下事件处理程序进行编程?

时间:2019-06-25 19:38:54

标签: react-native react-native-navigation

我正在使用Wix的react-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 :(得分:0)

我有相同的阻止程序,这就是我修复它的方法。我使用了registerNavigationButtonPressedListener()并传递了navigationButtonPressed

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