今天遇到个问题,在react项目里,使用了img标签上的onLoad方法,但是有时候能触发有时候不能触发。
首先想到可能是缓存,但是图片请求的状态码是200。
还没有具体去研究,先记录一个解决这个问题的方法。
const image = useRef({});
useEffect(() => {
console.log(image.current.complete);
}, []);
在代码里加上这一段,就会发现,onLoad触发时打印出来是false,不触发时则是true。 所以要解决onLoad不触发的问题只需要在useEffect里手动去触发一下就可以了。
useEffect(() => {
image.current.complete && onLoad();
}, []);