2015-01-05 1 views
13

Ho definito un nome di classe per la tabella seguente (come parte di JSX).
<table class="table">Come specificare la classe su un nodo JSX?

Tuttavia una volta che la sua visualizzata la classe non è impostato sul tavolo:

var SearchResult = React.createClass({ 
     render: function(){ 
      return (
       <table class="table"> 
        <thead> 
         <tr> 
          <th>Name</th> 
          <th>Address</th> 
         </tr> 
        </thead> 
        <tbody>...</tbody> 
       </table> 
      ); 
     } 
    }); 

Invece la tabella mostra come <table data-reactid=".0.1.0.0">...</table> in Chrome -> ispezionare elemento.

risposta

19

ReactJS utilizza l'attributo className per evitare l'uso di una parola riservata JavaScript.

<table className="table"> 
+2

Come il [interrogante qui cita] (https://www.quora.com/Why-do-I-have-to-use-className-instead-of-class-in-ReactJs-components- done-in-JSX), JSX è pre-elaborato, quindi le parole riservate non sono realmente un motivatore. Da "Ben Alpert, team principale di React": "Certamente avremmo potuto farlo in un modo diverso. Ne ho discusso per un po '... In primo luogo, tendiamo a considerare le proprietà HTML (come' el.className =. ..') quando possibile, al contrario degli attributi (come 'el.setAttribute ('classe', ...)'). * "ecc ecc. – ruffin