如何使用react-native将TabBarIOS弹出到导航堆栈的顶部?

时间:2016-07-19 20:40:07

标签: react-native tabbar tabbarios

我有以下TabBarIOS.Item设置:

          <TabBarIOS.Item
            selected={this.state.selectedTab === 'tab1'}
            title='Tab 1'
            icon={require('./Components/Icons/IconImages/Tab1Icon.png')}
            onPress={() => {
              this.setState({
                selectedTab: 'tab1'
              });

             }}>
            <MyNavigatorIOS client={this.state.client} initialStep={this.state.initialStep} />

          </TabBarIOS.Item>

我正在尝试使用onPress事件根据this example in the react native docs触发this.props.navigator.popToTop();。但是,区别在于我希望TabBarIOS onPress事件触发popToTop()而不是子MyNavigatorIOS组件。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,你可以做的是为你的视图和它里面的导航器添加一个ref,就像这样:

          this.refs.timeline.refs.timelineNavigator.popToTop()

所以TabBar代码如下所示:

    <TabBarIOS.Item
      systemIcon="history"
      title="Timeline"
      badge={this.state.timelineBadge}
      selected={this.state.selectedTab === 'timeline'}
      onPress={() => {
        if (this.state.selectedTab === 'timeline') {
          this.refs.timeline.refs.timelineNavigator.popToTop()
        } else {
          this.setState({ selectedTab: 'timeline' })
        }
      }}>
      <Timeline
        ref="timeline"
      /> 
    </TabBarIOS.Item>