网页中图片加载失败是很常见的问题,我们往往需要在图片加载失败的时候切换成我们默认的图片。之前在react
中处理这种情况的时候,我都直接通过setState
来处理,比较这算是严格遵守react
状态驱动的要求~~
但其实这样还是有点麻烦的,尤其是我们在图片出现异常时,只要切换图片显示,并没有其他行为要处理的时候,多加一个状态码是多余的。
1 | <img src={`${img}`} onError={(e)=>{e.target.onerror = null; e.target.src=`${errImg}`}}/> |
e.target.onerror
设置成空,取消掉错误处理,以防极端情况下我们的错误图片也获取不到,导致循环调用错误方法;接着给img
赋新值。
这其实是再简单不过的操作,但是因为用了react
之后,往往就会忘记我们还能这样处理,我们还能去拿到元素对象进行操作。当然不推荐这样做,但这其实是个取舍的问题。只是提醒自己不要僵化思维。