在react-native中动态隐藏/显示标头

时间:2017-06-27 09:31:00

标签: react-native react-navigation

我正在使用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
});

2 个答案:

答案 0 :(得分:13)

搞定了:

不知道为什么会这样,但将undefined传递到标头会显示默认标头,而null会隐藏标头。

我正在做这样的事情:

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

和状态变化;

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

答案 1 :(得分:0)

根据docs,将header设置为null会隐藏标题。像这样去做吧

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