LoginSignup
0
1

More than 1 year has passed since last update.

ReactNavigationのTabNavigatorにネストされたStackNavigatorのタブを非表示にする方法

Last updated at Posted at 2021-05-13

TabNavigatorにネストされたStackNavigatorのタブを非表示にする方法

公式ドキュメント的には、 TabNavigatorとStackNavigatorのネストを入れ替えて、StackNavigatorの中にTabNavigatorを入れる方法が紹介されているが、これが結構辛かったりする。
https://reactnavigation.org/docs/hiding-tabbar-in-screens/

(TabNavigatorより外側に、StackNavigatorを移動すればよいだけなので意外と簡単だが。。。)

<TabNavigator>
    <StackNavigator>
        <Tabを非表示にしたいスクリーン />
        <Tabは表示してもいいスクリーン1 />
    </StackNavigator>
    <Tabは表示してもいいスクリーン2 />
</TabNavigator>

↓

<StackNavigator> /* ここに移動 */
    <TabNavigator>
        <Tabは表示してもいいスクリーン1 />
        <Tabは表示してもいいスクリーン2 />
    </TabNavigator>
    <Tabを非表示にしたいスクリーン /> /* ここに移動 */
</StackNavigator>

他の方法はないか

他に楽な方法はないのかとググった中で、以下の方法が簡単で良さそうだった。

<Tab.Navigator tabBarOptions={stackOptions} >
  <Tab.Screen
    name={"market"}
    component={MarketNavigator}
    options={navigation => ({
      // tabBarIcon: ,
      tabBarVisible: navigation.route.state.index > 0 ? false : true
    })}
  />
</Tab.Navigator>

最後に

時間がなくてササッと書いているので、間違いがあったらすみません。。。
間違いを見つけた場合は教えて下さい!
もっと良い方法をご存じの方も教えていただけると幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1