美文网首页
# 配置导航器的header

# 配置导航器的header

作者: sunner168 | 来源:发表于2017-02-13 22:44 被阅读96次

配置导航器的header

在前面的例子中,我们创建了一个栈导航器去展示几个场景/页面用于在我们的应用中。

当我们跳转到聊天页面中,我们可以在navigate函数中指定一些参数用在新的路由中。这里我们将提供一个人名去聊天页面:

this.props.navigation.navigate('Chat', { user:  'Lucy' });

The user param can be accessed from the chat screen:

class ChatScreen extends React.Component {
  render() {
    const { params } = this.props.navigation.state;
    return <Text>Chat with {params.user}</Text>;
  }
}

设置header的标题

Next, the header title can be configured to use the screen param:
下一步,我们可以在页面配置的参数中设置头标题:

class ChatScreen extends React.Component {
  static navigationOptions = {
    // // Title may be a simple string:
    // title: 'Hello',

    // Or the title string may be a function of the navigation prop:
    title: ({ state }) => `Chat with ${state.params.user}`
  };
  ...
}
basic-header

在右边添加一个按钮

Then we can add a header navigation option that allows us to add a custom right button:

我们可以在header添加一个header的导航选项让我们自定义一个右边的按钮。

static navigationOptions = {
  header: {
    right: <Button title="Info" />,
  },
  ...
header-button

就跟title选项一样,header中的选项都可以定义为函数,函数中可以使用navigation prop导航栏传递的一些参数。
让我们基于路由传递的参数渲染出不同的按钮同时设置通过按钮去调用navigation.setParams 去传递。

static navigationOptions = {
  title: ({ state }) => {
    if (state.params.mode === 'info') {
      return `${state.params.user}'s Contact Info`;
    }
    return `Chat with ${state.params.user}`;
  },
  header: ({ state, setParams }) => {
    // The navigation prop has functions like setParams, goBack, and navigate.
    let right = (
      <Button
        title={`${state.params.user}'s info`}
        onPress={() => setParams({ mode: 'info' })}
      />
    );
    if (state.params.mode === 'info') {
      right = (
        <Button
          title="Done"
          onPress={() => setParams({ mode: 'none' })}
        />        
      );
    }
    return { right };
  },
  ...

Now, the header can interact with the screen route/state:
现在页面header部分的内容可以互相影响了。

header-interaction

可以到这里去了解其余header选项。

相关文章

  • # 配置导航器的header

    配置导航器的header 在前面的例子中,我们创建了一个栈导航器去展示几个场景/页面用于在我们的应用中。 当我们跳...

  • react-native导航栏StackNavigator

    StackNavigator是react-native的页面路由配置控制器,是一个堆栈导航器,由于它是一个堆栈导...

  • iOS 配置PCH文件

    在bulid settings 中搜索prefix header 配置Prefix Header $(SRCROO...

  • StackNavigator、TabNavigator详解

    StackNavigator StackNavigator是最常用的导航器,用于普通页面的分页,它包括路由配置和初...

  • MJRefresh快速配置模板代码

    下拉刷新配置MJRefreshNormalHeader *header=[MJRefreshNormalHeade...

  • Xcode使用技巧之跳转栏

    上篇文章中对导航器区域的介绍只是单单介绍了符号导航器的使用技巧,其中还有测试导航器,调试导航器和断点导航器这三个比...

  • 2_H5新标签

    header footer header元素(标签) 用于设置一个页面的标题部分,通常会包含标题,LOGO,导...

  • vue.config.js

    Invalid Host header修改vue.config.js的配置

  • Nginx搭建反向代理服务器

    default.conf配置 nginx.conf配置 转发请求对应的header参数:underscores_i...

  • Zuul的配置-传递header

    zuul默认对转发的request,会把header清空,为了传递原始的header信息到最终的微服务,在配置加上...

网友评论

      本文标题:# 配置导航器的header

      本文链接:https://www.haomeiwen.com/subject/sbgtwttx.html