Реагировать на событие img onError не вызвано - PullRequest
0 голосов
/ 04 марта 2019

В моем приложении create-реагировать у меня есть карты, которые отображают изображения на стороне сервера, и я хочу использовать фиктивное изображение, когда изображение на стороне сервера не возвращается.Кажется, что событие onError никогда не запускается.Вот мой код:

import React from 'react';
import notfound from '../../icons/notfound.png';

class Card extends React.Component {
constructor(props) {
    super(props);
    this.state = {
        open: false
    }
}

addDefaultSrc(ev){
    ev.target.src = {notfound};
    ev.target.onerror = null;
}

render(){
    return (
        <div>
           <div><img className="item-photo" onError={() => this.addDefaultSrc} src={url} alt=""></img>
           </div>
        </div>
    );
}

и CardsList

    return (
         <Card
             key={i}
             id={item.No}
             url={`http://***.***.*.*:3000/${item.No}.JPG`} 
         />

Хотя я получаю ошибку 404 (не найдено), когда изображение не отображается, событие onError не вызывается.Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 04 марта 2019

Вы на самом деле не вызываете функцию.Попробуйте один из этих двух вариантов:

onError={this.addDefaultSrc} или onError={(e) => this.addDefaultSrc(e)}

...