2017-03-29 5 views
0

Ich Rendern meine Registerkarten in React-Bootstrap dynamisch, aber irgendwie die eventKey erkennt die Werte nicht und die Registerkarten sind nicht anklickbar. Hier ist der Code.Dynamic EventKey funktioniert nicht React-Bootstrap

var tabButtons = tabsList.map(function(text, index){ 
         if(text.enabled==1) 
         { 
         return <NavItem eventKey={index} key={index}><center> {text.value}</center></NavItem>; } 
         }); 

tabList Hier ist ein Array, das über Informationen enthält, ob die Taste aktiviert ist. Wenn ja, dann zeigen Sie die Informationen zur Schaltfläche an.

Der Code, wo ich diese Registerkarten aufrufen.

render() { 

     return (
      <div> 
       <Tab.Container id="tab" defaultActiveKey="0"> 
       <Row className="show-grid"> 
        <Col sm={12}> 
        <Nav bsStyle="tabs" justified> 
         {tabButtons} 
        </Nav> 
        </Col> 

        <Col sm={12}> 
        <Tab.Content animation> 
         <Tab.Pane eventKey="0"> 
         <FirstTabContent /> 
         </Tab.Pane> 
         <Tab.Pane eventKey="1"> 
         Second 
         </Tab.Pane> 
         <Tab.Pane eventKey="2"> 
         <ThirdTabContent /> 
         </Tab.Pane> 


        </Tab.Content> 
        </Col> 
       </Row> 
       </Tab.Container> 
      </div> 
      ); 

Ich habe keine Ahnung, warum nicht das sind eventKey der Lage, die index Werte zu verwenden. Alles, was ich vermisse? Ein anderer Ansatz vielleicht?

+0

Schaltfläche richtig Rendern ?? –

+0

Ja, sie werden korrekt gerendert. Wenn ich auf sie klicke, lösen sie keine Reaktion aus, so dass ich das 'eventKey'-Ding auskreide. Könnte auch etwas anderes sein: | –

Antwort

0

Anscheinend nach ein paar Treffern und versucht, hat es funktioniert.

Das Problem war in der Tat in eventKey.

eventKey="0" Ersetzt durch eventKey={0}

Obwohl ich keine Ahnung, was Unterschied es macht haben. Jemand?

+1

Man gibt eine Zeichenfolge mit Null innerhalb zurück, die andere gibt die Zahl Null zurück. Das Gleiche passiert, wenn Sie eine echte Requisite haben wollen, etwas = "wahr" wird nicht wie erwartet funktionieren, wenn Sie es nicht auf etwas fixieren = {true}. Die Klammern sagen nur "es ist ein Javascript-Wert" anstelle einer statischen Zeichenfolge. –

Verwandte Themen