2017-09-16 14 views
0

我想用按鈕將TabNavigator的標題設置爲'Stylebook'。如何避免在TabNavigator及其子屏幕中覆蓋標題的「標題」? (react-navigation)

但是,作爲TabNavigator子項的屏幕會更改'標題'。我認爲這是壓倒'標題'道具。我怎樣才能避免它?

enter image description here

這是TabNavigator的(我的TabBar處於StackNavigator)

export default TabNavigator(
{ 
    Category: { 
    screen: StylebookCategoryScreen 
    }, 
    All: { 
    screen: StylebookAllScreen 
    } 
} ,{ 
    navigationOptions: ({ navigation }) => ({ 
    title: 'Stylebook', 
    headerRight: (
     <Button onPress={() => navigation.navigate('Wardrobe')} 
     title="Wardrobe" 
     /> 
    ) 
}) 
}); 

StylebookAllScreen與StylebookCategoryScreen幾乎完全相同。

class StylebookAllScreen extends Component { 
    static navigationOptions = { 
    title:'All' 
    } 

    render() { 
    return (
     <View> 
     <Text>StylebookALLScreen</Text> 
     <Text>StylebookALLScreen</Text> 
     </View> 
    ) 
    } 
} 

export default StylebookAllScreen; 

我也可以改變導航器的整體結構,如果我能解決這個問題。

謝謝!

+0

我想如果你從標籤頁面中刪除'title',這不會發生。這些選項卡默認情況下會在導航器中獲得您定義的名稱,所以應該沒問題。 – Kraylog

+0

@NimrodArgov這很接近,但並不正確。當我從標籤屏幕上移除標題時,這些標題會變成'STYLEBOOK'; 'all' - >'stylebook','category' - >'stylebook'。 –

+0

您的層次結構是StackNavigator - > TabNavigator - > Component? – Kraylog

回答

1

您必須將StylebookAllScreen組件放入StackNavigator,然後將其放入TabNavigator。把它變成一個StackNavigator允許您設置props

navigationOptions: ({navigation}) => ({ 
     title: "Stylebook", 
    }), 

隨着headerLeftheaderRight可以添加Component(如Button到您的標題的左/右

嘗試是這樣的:

const StylebookStack = StackNavigator({ 
    StylebookAllScreen: { 
     screen: Map, 
     navigationOptions: ({ navigation }) => ({ 
      title: "Stylebook", 
      headerTitleStyle: { 
       .... 
      }, 
     }), 
    }, 
}); 

然後將它放入您的TabNavigator

export default TabNavigator(
{ 
    Category: { 
    screen: StylebookCategoryScreen 
    }, 
    All: { 
    screen: StylebookStack // <--- HERE 
    } 
} ,{ 
    navigationOptions: ({ navigation }) => ({ 
    title: 'Stylebook', 
    headerRight: (
     <Button onPress={() => navigation.navigate('Wardrobe')} 
     title="Wardrobe" 
     /> 
    ) 
}) 
}); 
+0

我想你可以解決這個問題(+200賞金):https://stackoverflow.com/questions/47930049/how-to-reset-tabnavigator-when-user-logs-out-from-other -屏幕 –