请稍等 ...
×

采纳答案成功!

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

关于使用useRef保存上一次状态的疑问

图片描述
我不懂的是为什么这个preCountRef.current保存的是count这个属性,但是点击div的时候count会加一,为什么它就保存上一次的状态呢,很是纳闷

正在回答

1回答

茵风泳月 2019-05-23 14:21:22

同学你好,我们观察代码

useEffect(() => {
  preCountRef.current = count;
});

它没有依赖参数,说明每一次组件的渲染(典型是点击按钮触发的渲染),都会运行一次这个副作用。而useEffect是在每次的渲染后来执行的。因此我们把本次渲染所使用的count保存在了preCountRef中。

现在我们执行下一次渲染,这个时候我们先运行的代码是:

const [count, setCount] = useState(0);
const prevCountRef = useRef();
const prevCount = prevCountRef.current;

注意这时候副作用还没有运行,所以在本次渲染阶段,prevCount就是上一次渲染的时候所用得count值。

不知道对你的疑惑有没有帮助。

祝您学习愉快!

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号