为什么withloader 图片跟随着图标一直加载

来源:3-12 自定义 hook 第三部分 - 正确的方式完成 URLLoader

香泪

2021-07-01

图片描述

图片描述

图片描述

写回答

2回答

张轩

2021-07-04

同学你好 研究了一下发现

1.为什么 useLoader 没有重新加载图片,mousemove 的时候会触发 rerender,但是由于我们的 useURLLoader 的 useEffect 第二个数组判断了 url 是否有变化,(在这个情况下 url 没有变化),所以没有重新加载。

2. 为什么 HOC 会重新加载,原因是我们将这个组件,放在了 App 的函数体内,rerender 的时候等于每次都会重新生成一遍组件实例,所以会重新加载,假如你把它挪到函数体外面,就会发现没问题了。

const WrappedDogShow = withLoader(DogShow, 'https://dog.ceo/api/breeds/image/random')

function App() {
...
}


1
1
香泪
非常感谢!
2021-07-05
共1条回复

张轩

2021-07-02

同学你好 抱歉没有特别理解你的意思 你说的图标是指哪里的内容呢? withLoader 作为一个 HOC,只有加载中,和加载完成两种状态。

0
1
香泪
之前有hoc例子,鼠标移动获取经纬度,和下面请求接口图片加载的例子,放在一起,鼠标移动,图片就会重新请求接口加载图片。但有点奇怪,如果图片加载的例子如果换成hooks(urlloader)的方式,就不会有这个问题,不清楚为啥,所以请教一下老师
2021-07-02
共1条回复

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2123 学习 · 959 问题

查看课程