React replace img src onError

页面在加载图片的时候,如果图片资源不存在,为了更好的用户体验,我们一般会用一张默认图片替换,提醒用户当前图片缺失。
但还有一种情况是图片地址存在,只是图片地址出错了返回了404错误,这时也需要使用一张默认图片替换。
然而我们的设计师给我的是一个SVG文件,SVG文件我们都是封装成组件的形式调用,所以我无法生成一个图片链接替换。
在参考了以下链接后,我动手写了一个组件。
https://stackoverflow.com/questions/34097560/react-js-replace-img-src-onerror

组件的大体逻辑如下:
1 如果图片正常,则渲染28行的图片。
2 this.state.reveal状态初始为false,表示不显示默认的替换图片。
3 如果onError事件被触发,则调用revealDefaultImage方法,将this.state.reveal状态更改为true.
4 如果图片地址不存在或者地址错误,则显示25行的默认替换图片。

完整源码:


DefaultImage.tsx

父组件调用:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,032评论 3 119
  • 感受keep有句宣传口号,自律给我自由,讲的是通过自律,坚持运动而可以有更好的身体,从而有更多的可能性。而训练营的...
    预期_阅读 219评论 0 0
  • 疯狂过年夜 2月15日 晴 “起床啦!”清早,我被老妈那震天的“...
    杜金铭小同学阅读 302评论 0 0