2017-06-27 28 views
3

我使用react-navigation作爲路由目的。我想在一個組件上動態地隱藏或顯示標題。任何方式來做到這一點?動態地隱藏/顯示反應原生的標頭

我像這樣動態更改headerLeft,但無法找到任何方式來完成整個標題。

static navigationOptions = ({ navigation }) => ({ 
    headerRight: navigation.state.params ? navigation.state.params.headerRight : null 
}); 

this.props.navigation.setParams({ 
     headerRight: (
      <View> 
       <TouchableOpacity onPress={() => blaa} > 
        <Text>Start</Text> 
       </TouchableOpacity> 
      </View> 
     ) 
}); 

我想是這樣的 - 隱藏/顯示標題基於狀態:

this.props.navigation.setParams({ 
     header: this.state.header 
}); 

回答

3

得到它的工作:

不知道爲什麼是這樣,但經過undefined到標題會顯示默認的頭和null將隱藏標題。

我做這樣的事情:

static navigationOptions = ({ navigation }) => ({ 
    header: navigation.state.params ? navigation.state.params.header : undefined 
}); 

和狀態變化;

this.props.navigation.setParams({ 
     header: null 
}); 
+0

https://reactnavigation.org/docs/navigators/stack#header – kaya

+0

@kaya null隱藏標題。沒事兒。我得到的是如何將標題重置爲原始,並將其設置爲未定義的動態。 –

+0

我沒有在文檔中找到它,但我可以說未定義意味着沒有定義,所以它重置值。 – kaya

0

按照docs,設置header爲null隱藏標題。去它這樣

this.props.navigation.setParams({ header: this.state.header ? whatever-you-want : null })

+0

隱藏很容易與空,但應該是什麼價值「任何你想」 –

+0

你說你要動態地隱藏或顯示標題組件嗎?無論你想要什麼都應該代替一個反應元素或功能。 https://reactnavigation.org/docs/navigators/stack#header你想顯示爲標題 –

+0

這裏的標題不是單獨的反應元素,標題是react-navigation庫的一部分。 –