React中img标签的onLoad方法不触发

1,194 阅读1分钟

今天遇到个问题,在react项目里,使用了img标签上的onLoad方法,但是有时候能触发有时候不能触发。
首先想到可能是缓存,但是图片请求的状态码是200。
还没有具体去研究,先记录一个解决这个问题的方法。

const image = useRef({});
useEffect(() => {
    console.log(image.current.complete);
}, []);

在代码里加上这一段,就会发现,onLoad触发时打印出来是false,不触发时则是true。 所以要解决onLoad不触发的问题只需要在useEffect里手动去触发一下就可以了。

useEffect(() => {
    image.current.complete && onLoad();
}, []);