react-hooks为什么使用useRef可以保存上次的值?
我在useEffect中把state状态赋值给ref对象的current属性,也就是说这个preCountUseRef.current拿到最新的state值,可是在DOM中显示上次的state值
相关代码
import React, { useState, useRef, useEffect } from 'react'
const App = () => {
const [count, setCount] = useState(0)
const preCountUseRef = useRef(count)
useEffect(() => {
preCountUseRef.current = count
})
return (
<div>
<p>precount: {preCountUseRef.current}</p>
<p>You clicked {count} times</p>
<button onClick={() => setCount(() => count + 1)}>Click me</button>
</div>
)
}
export default App
能否详细说明一下useRef运行机制以及对官网解释的"useRef
就像是可以在其.current
属性中保存一个可变值的“盒子”。"这句话该怎么理解呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
跟闭包原理差不多
ref
你理解成为是这个组件中的作用域链最顶层的变量就行了,也就是闭包。另外楼主的useEffect
最好传一下第三个值,即使它是空的,否则在setState
的时候会报错……