2016-06-14 205 views
0

我現在用的反應本地IOSTabbar類似於下面的示例:陣營原住民死循環

render: function() { 
    return (
     <TabBarIOS 
     tintColor="white" 
     barTintColor="#D7DF01"> 
     <TabBarIOS.Item 
      title="All" 
      icon={require('./x.png')} 
      selected={this.state.selectedTab === 'x'} 
      onPress={() => { 
      this.setState({ 
       selectedTab: 'x', 
      }); 
      }}> 
      {this._renderContent(this.state.selectedTab)} 
     </TabBarIOS.Item> 
     <TabBarIOS.Item 
      icon={require('./y.png')} 
      title="Incoming" 
      selected={this.state.selectedTab === 'y'} 
      onPress={() => { 
      this.setState({ 
       selectedTab: 'y' 
      }); 
      }}> 
      {this._renderContent(this.state.selectedTab)} 
     </TabBarIOS.Item> 
     <TabBarIOS.Item 
      icon={require('./z.png')} 
      title="Outgoing" 
      selected={this.state.selectedTab === 'z'} 
      onPress={() => { 
      this.setState({ 
       selectedTab: 'z' 
      }); 
      }}> 
      {this._renderContent(this.state.selectedTab)} 
     </TabBarIOS.Item> 
     </TabBarIOS> 
    ); 
    }, 

在我執行SQLLite選擇_renderContent方法,但這個結束在一個無限loop..Is是正常的TabBar?誰能幫忙?

+0

它可能會幫助,如果你發佈的實際代碼_renderContent方法。如果你只是在每個TabBar項目中渲染一個簡單的文本元素,你是否嘗試過如果無限循環仍然存在? – Nicholas

回答

0

請勿將SQLLite調用放入呈現器中。使用生命週期方法,因爲每次組件呈現它會:

  • 撥打電話
  • 更新一些狀態
  • 觸發另一個渲染

等。

你爲什麼不嘗試把呼叫在componentDidMount方法,結果分配到國家像setState({ tab1Content: sqliteResult }),然後調用與tab1Content狀態_renderContent

相關問題