Показать сообщение отдельно
  #1 (permalink)  
Старый 13.10.2018, 08:25
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Динамическое заполнение сетки элементами (React.js)
Здравствуйте. Подскажите пожалуйста как мне решить следующую задачу. У меня есть некое количество json данных.
{
  "cards": [
    { "id": "1", "content": "Lorem ipsum dolor sit amet." },
    { "id": "2", "content": "Lorem ipsum dolor sit amet." },
    { "id": "3", "content": "Lorem ipsum dolor sit amet." },
    { "id": "4", "content": "Lorem ipsum dolor sit amet." },
    { "id": "5", "content": "Lorem ipsum dolor sit amet." },
    { "id": "6", "content": "Lorem ipsum dolor sit amet." },
    { "id": "7", "content": "Lorem ipsum dolor sit amet." },
    { "id": "8", "content": "Lorem ipsum dolor sit amet." },
    { "id": "9", "content": "Lorem ipsum dolor sit amet." },
    { "id": "10", "content": "Lorem ipsum dolor sit amet." },
    { "id": "11", "content": "Lorem ipsum dolor sit amet." }
  ]
}


Я получаю эти данные и передаю через props в компонент.
Мне бы хотелось реализовать следующую логику:

// this.cardsData, это данные

ReactDOM.render(
    <NewsFeedPreviewList
        list={this.cardsData}
    />,
    document.querySelector('[data-dc-news-feed-preview-ref="primary-wrapper"]'));

NewsFeedPreviewList.js

class NewsFeedPreviewList extends Component {
  renderNewsFeedPreview = (list) => {
    let template = null;
    template = list.map((item, i) => {
      return (
          <PlayerCardRow
              key={i}
              item={item}
          />
      );
    });
    return template;
 }
 
  render() {
    return (
      <ul className="news-feed-preview__layout">
        { this.renderNewsFeedPreview(this.props.list) }
      </ul>
    );
  }
}

Мне необходимо установить по следующему принципу css классы, например: у первого будет className="item__one", у второго элемента className="item__two", у третьего className="item__three", у четвертого className="item__four". Затем, у пятого className="item__one", у шестого className="item__two", у седьмого className="item__three", у восьмого className="item__four", и далее снова замкнутый цикл: у девятого будет className="item__one" и так далее.
Подскажите пожалуйста как правильно реализовать этот алгоритм.
Ответить с цитированием