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