如何在React导航中获得当前焦点的选项卡名称

时间:2018-11-22 03:32:57

标签: reactjs react-native react-navigation

我在反应导航中使用标签导航器。更改标签时,我想检测当前的焦点标签。
任何帮助将不胜感激!

我正在使用:  -react-native:0.57.4,react-navigation:2.16.0

1 个答案:

答案 0 :(得分:0)

我找到了答案。

class MyScreen extends Component {

  static navigationOptions = () => {
    return {
      tabBarOnPress({ navigation, defaultHandler }) {

        navigation.state.params.onTabFocus('tab_name');

        defaultHandler();
      }
    };
  };

  componentDidMount() {
    this.props.navigation.setParams({
      onTabFocus: this.getCurrentTab
    });
  }

  getCurrentTab = (tabName) => {
    console.log("current tab >>>>>>", tabName);
  };
}

////////////第二个解决方案///////////////

可以使用NavigationEvents组件来订阅这些导航事件。

  • onWillFocus:在聚焦标签之前
  • onDidFocus:聚焦标签后
  • onWillBlur:在失去对标签的关注之前
  • onDidBlur:在失去对标签的关注之后