无法获取最新值的写法:
- 在state中定义初始值:
import React, {useState, useEffect} from "react";
const [type, setType] = useState(0);
- 通过setType方法修改type:
<div onClick={()=>setType(1)}>
- 在当前组件中—— 能正常获取到 type最新值
- 将type传入子组件中操作——子组件获取不到最新值
解决方法:
一、
通过 useEffect() 触发
- 在原上述逻辑基础上,新增:
useEffect(() => {
setType(type);
}, [type]);
监测当type值发生改变时,设置一次
- 通过 useRef() 执行
import React, {useState, useEffect, useRef} from "react";
const typeRef = useRef(0);
const setTypeByRef = () =>{
typeRef.current = 1
}
<div onClick={setTypeByRef}>
- typeRef.current 就是最新的 typeRef 值