在react-native中如何获取选项卡值或索引

时间:2018-01-24 10:13:55

标签: reactjs react-native

在react-native中如何获取选项卡值或索引。我在选项卡中呈现API数据。在我们的标签中,有多个日期即将来临。

我想保存选定的标签值,例如选择了哪个日期。

有人可以帮忙吗?

 <Tabs renderTabBar={() => <ScrollableTab />} style={styles.Card_background_Margin} initialPage={0}
                      onChangeTab={(Tab, index) => this.tabChanged(Tab, index)}>


                      {  this.state.dateList.map((lists) => {
                        return(
                      <Tab heading= {lists.items} style={styles.Tab_background}>
                        <ScheduleDays navigation={this.props.navigation} />
                      </Tab>

                      )
                  })
                }

                </Tabs>

在这里,我正在调用该函数,但在警报中,它即将到来[object][object],而对于索引,它即将到来undefined。如果我选择任何其他选项卡,则此功能正在运行。

tabChanged(Tab, index){
  alert(Tab);
}

2 个答案:

答案 0 :(得分:1)

我已经解决了这个问题......

initialPage你必须在构造函数中定义如下:

constructor(props) {
        super(props);
           this.state = {
          pageNumber: 1
    }

之后在这里给你打电话的方法,你会得到选择的标题值,警告我工作正常。

tabChanged(ref){
   alert(ref);
   }

<Tabs
   renderTabBar={() => <ScrollableTab />} style={styles.Card_background_Margin}
   initialPage={this.state.pageNumber}
   onChangeTab={({ ref }) => this.tabChanged(ref.props.heading)}
>
   {
      this.state.dateList.map((lists) => {
         return(
            <Tab heading= {lists.items}  style={styles.Tab_background}>
               <ScheduleDays navigation={this.props.navigation} />
            </Tab>
         )
      }) 
   }  
</Tabs>

答案 1 :(得分:0)

我遇到了同样的问题,因为索引会返回一个对象。但是该对象由三个属性(i,ref,from)组成,因此使用i.i可以获得选项卡的索引。 所以在你的例子中

tabChanged(Tab, index){ alert(Tab.i); }

应该有用。