@Denis_8106

Как оптимизировать компонент(список)?

Ребята, помогите, как в React оптимизировать компонент(список)?
Этот код полность рабочий для компонента (выводится 15 строк с иконками), что меня устраивало, КРОМЕ статического кол-во строк:
import...
function SlideXItem(props) {
	return (
		<div className="slide-item">
			<TitleH3 text={props.head}/>
			<ul>
				<li><Picture src={props.el1}/></li>
				<li><Picture src={props.el2}/></li>
				<li><Picture src={props.el3}/></li>
				<li><Picture src={props.el4}/></li>
				<li><Picture src={props.el5}/></li>
				<li><Picture src={props.el6}/></li>
				<li><Picture src={props.el7}/></li>
				<li><Picture src={props.el8}/></li>
				<li><Picture src={props.el9}/></li>
				<li><Picture src={props.el10}/></li>
				<li><Picture src={props.el11}/></li>
				<li><Picture src={props.el12}/></li>
				<li><Picture src={props.el13}/></li>
				<li><Picture src={props.el14}/></li>
				<li><Picture src={props.el15}/></li>
			</ul>
			<span>{props.price}</span>
		</div>
	);
}

Все бы хорошо, но хотелось бы этот компонент переиспользовать с другим кол-вом строк, поэтому хочется оптимизировать код - сделать динамическое значение кол-во строк.

Пробовал как-то так:
function SlideXItem(props) {
	const listItems = [];
	for (let i = props.minRow; i <= props.maxRow; i++) {
		listItems[i] = i;
	}
	
	return (
		<div className="slide-item">
			<TitleH3 text={props.head}/>
			<ul>
				{listItems.map(str =>
					<li key={[str]}><Picture src={`${props.el}${[str]}`}/></li>
				)}
			</ul>
			<span>{props.price}</span>
		</div>
	);
}

В данном случаи, появляются 15 строк (что мне и надо) + правильный titleH3, НО по картинке (Picture) - пишет undefined1, undefined2, undefined3... по каждой строчке. Как сделать правильно?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
Gvoz1
@Gvoz1
Frontend разработчик
src={props['el'+str]}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы