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

Как обрабатывать события в map React?

Похожие вопросы есть но без ответа.

handlePopup=(e)=>{
        alert(123)
    };
    render(){
        return(
            <div className="posts">
                {this.props.articles.map(function(article){
                    return <div key={article.pid} className="posts__block">
                        <a href="#" className="posts__block__image">
                            <img src={article.src} alt={article.pid} />
                            <button
                                onClick={this.handlePopup.bind(this)}>sd</button>
                        </a>
                    </div>;
                })}
            </div>
        )
    }


Почему onClick={this.handlePopup.bind(this)} не срабатывает и как исправить?
  • Вопрос задан
  • 244 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
cimonlebedev
@cimonlebedev Автор вопроса
Тут всё просто оказалось надо просто index задать доп аргументом
handlePopup=()=>{
        alert(123)
    };

    render(){
        return(
            <div className="posts">
                {this.props.articles.map((article, index)=>{
                    if(index !== 0){
                        return <div key={article.pid} className="posts__block">
                            <a href="#" className="posts__block__image" onClick={this.handlePopup.bind(this)}>
                                <img src={article.src} alt={article.pid} />
                                {index}
                            </a>
                        </div>;
                    }
                })}
            </div>
        )
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽