2016-08-08 19 views
0

Ich bin eine wiederverwendbare Komponente für Tabelle erstellen, und ich bin die Warnung in der Konsole gegenüber, ist: -validateDOMNesting (...): #text kann nicht als Kind erscheint von <tr>

validateDOMNesting(...): #text cannot appear as a child of <tr>. 

Hier ist die Probe code: -

Dies ist die render-Methode, in der wir den Wert des Objekts überprüfen, wenn json dann die verknüpfbare Zeile sonst einfach Text machen.

return (
    <div className="table-responsive" id={self.props.tableId}> 
     <table id="table3"className="table table-bordered"> 
      <tbody> 
       { 
       this.isJson(self.props.columns.labels[0]) ? 
        (this.props.records.map((record, index) => { 
         return self.makeLink(record, index) 
        })) : (this.props.records.map((record, index) => { 
         return (<tr key = { index } > { 
          self.props.columns.labels.map((label, index) => { 
           return (<td key = { index } > { self.renderTableData(index, record) } </td>) 
          }) 
         } </tr>) 
        })) 
      } 

      </tbody> 
     </table> 
    </div>       
    ); 

Makelink-Funktion: -

makeLink(record, index){ 
    var self = this; 
    return (
     <tr key={index} onClick={this.redirect.bind(this,record._id)} > 
     {this.props.columns.labels.map((label, index) =>{ 
      return (
       <td key={index}>{self.renderTableData(index,record)}</td> 
      ) 
     })} 
    </tr> 
) 
} 

Vielen Dank im Voraus

Antwort

2

So wie der Fehler sagt, Sie Text nicht direkt in <tr> haben können, haben Sie es setzen in einem <th> oder <td>.

<table> 
    <tbody> 
    <tr> 
     <td>...</td> 
    </tr> 
    </tbody> 
</table> 
+0

Ich tue das gleiche aber es ist die Warnung – Jyoti

+1

Bearbeiten Sie Ihre Frage zu werfen und ein Beispiel für den Code einzufügen, Blind Anweisungen würden Sie nirgendwo hin. – casraf

+0

Ich habe meine Frage mit ausführlicher Beschreibung bearbeitet. Möge es jetzt hilfreich sein – Jyoti