写hooks的朋友都会遇到的问题,在使用useState声明好的值时,发现该值总是上一次的数据,我也有同样的困扰,于是有了以下代码。
一、定义字段
import React, { useState, useEffect, useRef } from "react"
const [GiveParams, setGiveParams] = useState({
pageNum: 1,
pageSize: 20,
name:undefined
})
二、useRef 的使用
const AccountRef = useRef({
GiveParamsRef: {},
})
// 每次定义的值变化时都会触发更新
useEffect(() => {
AccountRef.current = {
GiveParamsRef: GiveParams,
}
}, [GiveParams])
三、字段变更
onChange = {e=>{
setGiveParams({
...GiveParams,
name:e.target.value
})
}
四、取值
// GiveParamsRef 时时都是最新数据
const { GiveParamsRef } = updataRef.current