2017-08-31 37 views
2

我使用的材料UI和反應,我編程創建多個選項卡的可以看到下面:如何從材料UI設置活動標籤在標籤編程

return (
    <div> 
     <Tabs> 
      {this.state.elements.map(elem => { 
       return (
        <Tab key={elem.elemID} label={elem.name} > 
         <div> 
          // rest removed for brevity 
         </div> 
        </Tab> 
       ) 
      })} 
     </Tabs> 
    </div> 
); 

這工作,和選項卡顯示,但問題是,默認情況下,組件呈現時,第一個選項卡是活動的。而我想根據從道具獲得的id值以編程方式設置活動選項卡。所以基本上,如果this.props.selectedID === elem.elemID那麼我希望該選項卡是組件呈現時的活動選項卡。當然,一旦組件被渲染,用戶應該可以自由點擊並在標籤之間切換。任何想法如何實現它?

+0

需要一些更多的信息,如何使你的''和''成分即工作:在'會發生什麼'時,你點擊一個給定的選項卡? – Drum

回答

2

使用上TabsTabvalue道具,使這個控制組件:

<Tabs value={this.props.selectedID}> 
    {this.state.elements.map(elem => { 
      return (
       <Tab key={elem.elemID} label={elem.name} value={elem.elemID}> 
        <div> 
         // rest removed for brevity 
        </div> 
       </Tab> 
      ) 
     })} 
</Tabs> 
+0

這適用於初始渲染。但是,現在,當我單擊其他選項卡時,儘管它們突出顯示爲已單擊,但它們的內容未顯示。僅顯示最初選擇的選項卡的內容。 – typos

+0

您需要設置您的選項卡,以便當您單擊某個選項時,可以使您的'selectedID'支持符更改 – thedude

+0

您是否找到解決方案? – user7334203