采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我不懂的是为什么这个preCountRef.current保存的是count这个属性,但是点击div的时候count会加一,为什么它就保存上一次的状态呢,很是纳闷
同学你好,我们观察代码
useEffect(() => { preCountRef.current = count; });
它没有依赖参数,说明每一次组件的渲染(典型是点击按钮触发的渲染),都会运行一次这个副作用。而useEffect是在每次的渲染后来执行的。因此我们把本次渲染所使用的count保存在了preCountRef中。
现在我们执行下一次渲染,这个时候我们先运行的代码是:
const [count, setCount] = useState(0); const prevCountRef = useRef(); const prevCount = prevCountRef.current;
注意这时候副作用还没有运行,所以在本次渲染阶段,prevCount就是上一次渲染的时候所用得count值。
不知道对你的疑惑有没有帮助。
祝您学习愉快!
非常感谢!了解了,先渲染jsx在执行useEffect函数
登录后可查看更多问答,登录/注册
"快手"大神教你制作堪比原生APP体验的PWA应用,进阶高级开发
1.5k 8
1.8k 7
1.7k 6
1.5k 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号