react native navigation 隐藏 bottomTab
前言
在做 react-native app 时, 用到了 react navigation 的 bottom tab navigation, 但是在某些情况下需要控制 bottom tab bar 的显示和隐藏。
试了很多中方法,最后比较简单的方式是修改nodeModels里面的源码。
本文 react-native 版本为 0.59.8 , react-navigation 版本为 3.10.1
开始
核心思想是从 nodemodels 中找到渲染 bottom tab 的代码,直接的来控制它的显示隐藏。
找到代码文件为 nodemodels的 react-navigation-tabs/src/navigators/createBottomTabNavigator.js
为该文件中的类添加 state hidden=false;
在该类的 componentDidMount 中, 将hidden值的控制权 挂到 global.func上,
componentDidMount() {
global.func.showBottomTab = () => {
this.setState({
hidden: false
})
}
global.func.hideBottomTab = () => {
this.setState({
hidden: true
})
}
}
在该类的 render 中, 判断 this.state.hidden,