Задать вопрос
melkaya94
@melkaya94

Как определить индекс элемента, по которому кликнули?

this.state = {
	selectCard: {id: null, select: false}
};

На странице рендериться блок с карточками, внутри каждой карточки есть кнопка. Нужно определить на какой из карточек был совершен клик и передать в selectCard порядковый номер этой карточки и поменять значение select на true.
Сейчас все выглядит так:
функция, которая должна определять индекс карточки на которую кликнули
handleOnClick(){
		let cards = document.querySelectorAll('#fabricCard'); //собираем массив все карточек
		cards.forEach((card, i) => card.addEventListener('click', () => {
			this.saveData(i);
		}));
	}

функция, которая меняет selectCard:
saveData(i){
		this.setState({
			selectCard: {
				id: i,
				select: !this.state.selectCard.select
			}
		});
	}

рендер:
render{
return(
<div className={styles.expand_container}>
	{_mock_.free_fabric.map(card =>
	<FreeFabricCard key={card.id}{...card} amountCard={amountCard} handleClick={this.handleOnClick} choose={selectCard.select}/>
					)}
</div>
)
}
  • Вопрос задан
  • 1476 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
render{
return(
<div className={styles.expand_container}>
	{_mock_.free_fabric.map((card,index) =>
	<FreeFabricCard key={card.id}{...card} amountCard={amountCard} handleClick={this.handleOnClick.bind(index)} choose={selectCard.select}/>
					)}
</div>
)
}

handleOnClick(ind){
		console.log("your index",ind)
	}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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