要被react的useState玩死了,总是获取不到最新值,跪求大佬😭😭(不用useEffect的)
用的antd的分页onChange事件获取pageNum, pageSize,然后直接用useState赋值,再用这个对象调用列表查询
但问题是,actorListApi(searchParams)怎么都获取不到最新的值,崩了啊
所以使用useState的回调函数
setSearchParams(prevState => prevState.pageSize = pageSize)
这种方式,确实能正确的更改掉pageSize,但我还想把pageNum也获取一下,但怎么都不成功
比如:
// 不行
setSearchParams(prevState => {
return {...prevState, pageSize:pageSize, pageNum: pageNum}
})
// 不行
setSearchParams({ ...searchParams, pageSize: pageSize, pageNum: pageNum })
// 粗暴写两个,但第二个永远会有异常(不管pageNum在前,还是pageSize在前)
// Cannot create property 'pageSize' on number '1'
setSearchParams(prevState => prevState.pageSize = pageSize)
setSearchParams(prevState => prevState.pageNum = pageNum)
处理方式:应该是useState的回调函数使用方式不对,现在这样就可以了
奇怪,为什么return {...prevState, pageSize:pageSize, pageNum: pageNum}不行????
一脸懵逼