@bacca

Как осуществить условный рендеринг в реакте?

Добрый день, обхожу циклом массив данных? нужно, чтобы каждые 3 слайда заворачивать в новый "row". подскажите пожалуйста как реализовать это.
{slides.map((slide, index ) => (
index !== 0 &&index % 3 === 2) ? : ''
"component" Item
key={index}
data={slide}
/ "closeComponent"
slides.length=== index + 1 || index % 3 === 1 ? : ''
))}
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
const rows = slides.reduce((acc, el, i) => {
  if(i % 3 === 0) acc.push([]);
  acc[acc.length-1].push(el);

  return acc;
}, []);

return (
  <Wrapper>
    {rows.map((row, index) => (
      <Row key={index}>
        {row.map((slide, i) => <Slide key={i} data={slide} />)}
      </Row>
    ))}
  </Wrapper>
);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Coder321
function createWrappedSlides(slides, count = 3) {
    const wrappedSlides = [];
    for (let i = 0; i < slides.length; i += count) {
        wrappedSlides.push(slides.slice(i, i + count));
    }
    return wrappedSlides;
}
 createWrappedSlides(slides).map((slide, i) => <Slide key={i} data={slide} />)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы