react img onerror替换图片

网页中图片加载失败是很常见的问题,我们往往需要在图片加载失败的时候切换成我们默认的图片。之前在react中处理这种情况的时候,我都直接通过setState来处理,比较这算是严格遵守react状态驱动的要求~~

但其实这样还是有点麻烦的,尤其是我们在图片出现异常时,只要切换图片显示,并没有其他行为要处理的时候,多加一个状态码是多余的。

1
<img src={`${img}`} onError={(e)=>{e.target.onerror = null; e.target.src=`${errImg}`}}/>

e.target.onerror设置成空,取消掉错误处理,以防极端情况下我们的错误图片也获取不到,导致循环调用错误方法;接着给img赋新值。

这其实是再简单不过的操作,但是因为用了react之后,往往就会忘记我们还能这样处理,我们还能去拿到元素对象进行操作。当然不推荐这样做,但这其实是个取舍的问题。只是提醒自己不要僵化思维。

0%