请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

2回答

同学你好 研究了一下发现

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 10:00:12
张轩 2021-07-02 08:09:53

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

0 回复 有任何疑惑可以回复我~
  • 提问者 香泪 #1
    之前有hoc例子,鼠标移动获取经纬度,和下面请求接口图片加载的例子,放在一起,鼠标移动,图片就会重新请求接口加载图片。但有点奇怪,如果图片加载的例子如果换成hooks(urlloader)的方式,就不会有这个问题,不清楚为啥,所以请教一下老师
    回复 有任何疑惑可以回复我~ 2021-07-02 21:45:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信