【问题标题】:Different Headers in StackNavigatorStackNavigator 中的不同标题
【发布时间】:2017-07-25 15:20:32
【问题描述】:

我已经实现了一个 StackNavigator,我在其中删除了用于样式目的的标题。

现在我在 StackNavigator 中有一个组件,我想取回它的标题。你觉得我是怎么做到的?

这是我的 StackNavigator:

const Nav = StackNavigator(
{
    SplashScreen: {screen: SplashScreen},
    Login: {screen: Login},
    Register: {screen: Register},
    Main: {screen: MainNav},
},
{
    headerMode: 'none',
});

但是对于注册屏幕,我想要一个标题(让用户知道他可以返回)。

我试过这样做:

static navigationOptions = {
    title: 'Register',
    header: {

    }
}

但我不太清楚在标题部分放什么。

【问题讨论】:

    标签: android react-native react-navigation


    【解决方案1】:

    就我个人而言:当我不想显示时,我将标题的高度设置为 0,然后将其设置为 n,这样我就可以做类似的事情 height: condition ? 0 : 10

    否则有人回复here

    您可以使用以下代码以编程方式完成:

    static navigationOptions = ({ navigation }) => ({   header:
    > (navigation.state.params.thanks) => <HeaderView
    > content={navigation.state.params.thanks} /> : null, })
    

    然后你 可以这样设置状态参数:

    componentWillMount() {   this.props.navigation.setParams({ thanks:"Something" }); }
    

    虽然我自己没有尝试过代码,但我没有 确定公共 api 是否可以访问诸如 HeaderView 之类的东西 在反应导航中,如果有内容属性。但是我 以抽象的方式思考,这就是您以编程方式设置它的方式。

    我也没有尝试过,但它可能会起作用


    编辑:github中给出的答案肯定更好,你可以从react-navigation导入HeaderView并做header: condition ? HeaderView : null来显示和隐藏它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-04
      • 2019-09-27
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2018-07-04
      相关资源
      最近更新 更多