2016-07-29 12 views
1

Ich möchte Tab ändern auf dem NavItem evtKey = "x", ohne klickenReagieren-Bootstrap - Wie aktivieren einen Tab außerhalb NavItem

Wenn ich einen TabContainer wie dieses:

 <Tab.Container id="tabcontainer" defaultActiveKey="a"> 
      <Tab.Content animation> 
      <Tab.Pane eventKey="a"> 
       <ComponentA /> 
      </Tab.Pane> 
      <Tab.Pane eventKey="b"> 
       <Componentb /> 
      </Tab.Pane> 
      </Tab.Content> 
      <Nav stacked bsStyle="pills" pullLeft> 
      ... NavItems ... 
      </Nav> 
     <Tab.Container> 

Ich möchte zu wissen, wie ich das tun kann:

eventHandler(){ 
     changeToTab("b") 
    } 

innerhalb ComponentA.

+0

ich auch mit Blick auf dieses Problem. Ich möchte den aktiven Tab ändern, indem ich auf eine Schaltfläche klicke. aber es funktioniert nicht, indem der Statuswert geändert wird. –

Antwort

2

Der Registerkartencontainer, ersetzte defaultKey durch activeKey = {this.state.key} und verwaltete den Status des übergeordneten Elements mit einer Funktion, die als Prop an ComponentA übergeben wurde.

auf dem Elternteil der Tab.Container

handleSelect(key){ 
    this.setState({ key : key }) 
} 

render() { 
    ... render stuff ... 

    return (
     <Tab.Container id="tabcontainer" activeKey={this.state.key}> 
      <Tab.Content animation> 
       <Tab.Pane eventKey="a"> 
       <ComponentA changeTab={this.handleSelect}/> 
       </Tab.Pane> 
       <Tab.Pane eventKey="b"> 
       <ComponentB /> 
       </Tab.Pane> 
      </Tab.Content> 
      <Nav stacked bsStyle="pills" pullLeft> 
       ... NavItems ... 
      </Nav> 
     <Tab.Container> 
    ) 
} 

Und auf der Komponente A

eventHandler(){ 
    this.props.changeTab("b") 
}