Вставьте изображение через каждый элемент x в React

У меня есть список элементов, и мне нужно визуализировать изображение между каждыми 10 элементами. Элементы должны отображаться в 2-мерной сетке, изображение должно отображаться в новой строке.

должно получиться примерно так: Вставьте изображение через каждый элемент x в React

Вы что-нибудь пробовали?

kind user 08.12.2018 20:12

Я мог перечислить элементы с помощью карты, я подумал проверить индекс, если он делится на 10, мы можем добавить изображение, но это не сработало.

Nada Ghanem 08.12.2018 20:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
113
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это одно из решений, которое, я думаю, вы можете использовать:

<div id = "container" style = {{display: 'flex', flexDirection: 'row', flexWrap: 'wrap'}}>
{arrayList.map((listItem, index) => {
  const cardinalIndex = index + 1;
  const item = !(cardinalIndex % 10) ? (
    <React.Fragment>
      <div id = "item" style = {{flex: '1 1 25%'}}>
        {listItem}
      </div>
      <img style = {{flex: '1 1 100%'}} src = "" />
    </React.Fragment>
  ) : (
    <div id = "item" style = {{flex: '1 1 25%'}}>
      {listItem}
    </div>
  );
  return item;
})}

@NadaGhanem Была такая же идея, но мне интересно, чем ваш код отличается от моего

Benjamín Vázquez 08.12.2018 20:20

это очень похоже. Теперь изображение отображается как элемент, интересно, как его поместить в новую строку!

Nada Ghanem 08.12.2018 20:31

За пределами div #container?

Benjamín Vázquez 08.12.2018 20:32

он должен быть внутри, но в новой строке (как на изображении выше), я не знаю, возможно ли это.

Nada Ghanem 08.12.2018 20:37

С этим кодом есть пара проблем. 1. Вы визуализируете изображение вместо элемента и нет между ними. 2. Item - это параметр функции карты, который также переопределяется внутри.

Peter Ambruzs 08.12.2018 20:38

Я считаю, что это достигается с помощью flexbox, не знаю, как вы обрабатываете CSS.

Benjamín Vázquez 08.12.2018 20:38

Приведенный выше код заменяет каждый 10-й элемент изображением, что неверно, элемент должен быть там !.

Nada Ghanem 08.12.2018 20:47

Ага! спасибо @Peter, я исправил это, также нада пример также показывает, как использовать flexbox для выполнения макета на вашем изображении

Benjamín Vázquez 08.12.2018 20:48

Этот код неверен, он заменяет каждый 10-й элемент вместо того, чтобы вставлять новый, пожалуйста, ознакомьтесь с моим решением, оно работает, и я предоставлю вам пример

h-des 08.12.2018 20:50

Я изменил его, чтобы не заменять элемент изображением, он его добавляет ... @ h-des ваш ответ написан без синтаксиса JSX или с использованием функций ES5 React

Benjamín Vázquez 08.12.2018 20:55

@Benjamin, спасибо большое !. Впервые узнать о фрагменте React !.

Nada Ghanem 08.12.2018 21:26

Он не предоставил никакого кода, поэтому я просто дал ему простой алгоритм.

h-des 08.12.2018 22:23
//itemList is your array

let temp = [];

while (itemList.length > 0) {
  temp.push(itemList.splice(0, 10));
}

let res = [];
temp.forEach(e => {
  res = [...res, ...e, 'new item here'];
});

//res is your output array with inserted elements

А вот рабочий пример: https://jsfiddle.net/tkr1d8vg/

Спасибо, @ h-des, протестирую с реакцией, может есть способ попроще!

Nada Ghanem 08.12.2018 21:01

Другие вопросы по теме