采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
之前问了这个问题但是慕课不允许在回复中粘贴图片,就重新发下, 问题就是视频14-16中你讲Hook使用中的几个注意事项出现的
老师我没有明白问什么你用myCount 之后它就能够更新了, 能说下具体的原理吗, 没听清您视频说的 希望尽可能详细的解释一下
参考 https://coding.imooc.com/learn/questiondetail/264713.html
当你使用 count 时,下面代码的 'render...' 和 'useEffect...' 会死循环的一直打印,说明组件在不停的自动渲染。
原因就是:当 count 改变时,会触发组件重新渲染,因为 count 是 state 。而 myCount 不是 state ,它改变不改变,跟组件渲染没关系。
(注意看代码中的一行注释)
import React, { useState, useEffect } from 'react' export default function MyComponent () { const [count, setCount] = useState(0) console.log('render...') useEffect(() => { console.log('useEffect...', count) const timer = setInterval(() => { setCount(count + 1) }) return () => clearInterval(timer) }, [count]) // eslint 提示,这里必须有 [count] ,因为 useEffect 函数内部有 count return <p> {count} </p> }
登录后可查看更多问答,登录/注册
面向1-3年前端的框架及项目面试“刚需内容”
4.5k 1
3.0k 11
1.5k 11
1.6k 11
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号