2015-01-05 8 views
13

Я определил имя класса для таблицы ниже (как часть JSX).
<table class="table">Как указать класс на узле JSX?

Однако, как только его отображается класс не установлен на столе:

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

Вместо таблица показывает, как <table data-reactid=".0.1.0.0">...</table> в Chrome -> инспектировать элемент.

ответ

19

ReactJS использует атрибут className, чтобы избежать использования зарезервированного слова JavaScript.

<table className="table"> 
+2

Поскольку [спрашивающий здесь упоминает] (https://www.quora.com/Why-do-I-have-to-use-className-instead-of-class-in-ReactJs-components- done-in-JSX), JSX предварительно обработан, поэтому зарезервированные слова на самом деле не являются мотиватором. От «Ben Alpert, React core team»: «* Мы, конечно, могли бы сделать это по-другому. Я спорил об этом некоторое время ... Во-первых, мы склонны рассматривать свойства HTML (например,' el.className =. ..'), когда это возможно, в отличие от атрибутов (например, 'el.setAttribute ('class', ...)'). * "и т. д. и т. д. – ruffin

 Смежные вопросы

  • Нет связанных вопросов^_^