2016-10-25 5 views
2

Только что закончил курс моей Codecademy, и я все еще немного нечеткий по некоторым понятиям, таким как стилизация.Как отредактировать стиль мультиплексных элементов в React.js

Обычно, если я должен был стиль списка в CSS, это будет выглядеть так:

li { 
    text-decoration: none, 
    color: 'white' 
} 

Теперь, если бы я написал, что за пределами HTML-листа, а вместо этого через JSX, я знаю, что я может назначить стиль переменной как:

var linkStyle = { 
    textDecoration: 'none', 
    color: 'white' 
} 

и применить его к моим элементам, как:

<li style={listStyle}>Home</li> 

H owever, это кажется немного излишним, когда у меня есть несколько элементов в списке и нужно применить тот же стиль для всех из них, как показано ниже:

render: function() { 
     return (
      <div style={divStyle}> 
       <ul> 
        <li style={listStyle}><a href='#' style={linkStyle}>Home</a></li> 
        <li style={listStyle}><a href='#' style={linkStyle}>About Us</a></li> 
        <li style={listStyle}><a href='#' style={linkStyle}>Contact Us</a></li> 
        <li style={listStyle}><a href='#' style={linkStyle}>Library</a></li> 
       </ul> 
      </div> 
     ); 
    } 

Как избежать этого и применить стили в DRY способ мышления?

+1

Что случились с наличием 'className' и добавления таблицы стилей CSS? – ZekeDroid

+2

Почему бы не хранить ссылки в виде массива '['Home', 'About Us', 'Свяжитесь с нами']. Map (x =>

  • {x}
  • )' –

    +0

    Угадайте, что это правда на самом деле. Я пытался создать страницу из HTML-страниц с голыми костями и, надеюсь, без таблиц стилей CSS - пытался вместить все это в мои файлы React. EDIT: Идея массива может работать намного лучше. Спасибо. – classmethod

    ответ

    0

    Если вы хотите использовать только inline styles, вы можете сделать содержание как массив и вызвать map над ним

    render: function() { 
         return (
          <div style={divStyle}> 
           <ul> 
           { 
            ['Home', 'About us', 'Contact Us', 'Library'] 
            .map((el) => 
            <li style={listStyle}> 
             <a href='#' style={linkStyle}>{el}</a> 
            </li> 
            ) 
            } 
           </ul> 
          </div> 
         ); 
        } 
    
    Смежные вопросы