react 定时器修改状态需要用到useRef
const like = useRef(0);
setInterval(()=>{
console.log(like.current)
},1000)
采用useRef,作为组件实例的变量,保证获取到的数据肯定是最新的。
返回一个可变的ref对象,该对象只有个current属性,初始值为传入的参数(initialValue)。
返回的ref对象在组件的整个生命周期内保持不变
当更新current值时并不会re-render,这是与useState不同的地方
更新useRef是side effect(副作用),所以一般写在useEffect或event handler里
useRef类似于类组件的this,state不一定能访问到最新状态,ref在组件内任何地方内都可以访问到,类似组件内的全局变量