react-navigation使用

最近寫RN項目遇到很多問題!看了很多項目用到的react-navigation還是1.5.11的版本,遇到很多問題(忙了好幾天才找到問題)比如在使用createBottomTabNavigator 和createStackNavigator 嵌套時候坑來了,標題設(shè)置不上去!傷腦子(使用的最新react-navigation 版本2.0.4)

const TabNavigator = createBottomTabNavigator({
    Feed: Home,
    Profile: Mine,
});
const AppNavigator = createStackNavigator({
    Home: TabNavigator,
    Settings: Detail,
});

//下面是首頁設(shè)置的標題(我的界面一樣的)
 export default class Home extends Component {
  static navigationOptions={
      headerTitle:'首頁'
  }
  render() {
      return (
              <Text>這是Home</Text>
      );
  }
}
沒有標題

然后我再我給AppNavigator 這是導航欄信息出現(xiàn)但是不是我想要的效果!(但是還是不能單獨在子控制器里面設(shè)置標題,這是更改TabNavigator在每一個路由的顯示效果)

TabNavigator.navigationOptions = ({ navigation }) => {
    let { routeName } = navigation.state.routes[navigation.state.index];
    // 在這里你可以選擇基于路由的名稱
    let headerTitle = routeName;
    return {
        headerTitle,
  };
};

我想要是是給他的子類設(shè)置導航欄信息(然后想到把AppNavigator 的header給隱藏掉,先給每一個控制器加上導航欄在隱藏TabNavigator 的導航欄)

const FeedStack = createStackNavigator({
    FeedHome: Home,
});
const ProfileStack = createStackNavigator({
    ProfileHome: Mine,
});
const TabNavigator = createBottomTabNavigator({
  Feed: FeedStack,
  Profile: ProfileStack,
});

TabNavigator.navigationOptions = {
  // 從堆棧AppNavigator隱藏標題
    header: null,
};

const AppNavigator = createStackNavigator({
    Home: TabNavigator,
    Settings: Detail,
});

這樣就完美的解決了!(解決子導航欄設(shè)置不上標題問題)

Github地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容