Как обрабатывать события в 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)} не срабатывает и как исправить?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 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>
        )
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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