1
HariopaNic OP up……
|
2
HariopaNic OP up
|
3
HariopaNic OP uppppp
|
4
kyuuseiryuu 2021-03-05 17:17:51 +08:00
有用到 state 的函数要用 useCallback
const fn = useCallback(initList, [list, pageNo, isLoading, isListEnd]); |
5
newbieRenew 2021-03-05 17:34:19 +08:00 via iPhone
你都 async 了。await 后再 set
|
6
PeakFish 2021-03-05 17:40:16 +08:00
用 useEffect 监听数据改变处理啊, 你没发现 useEffect 就是 vue 里面的 watch 吗。监听变量改变然后自己操作。
|
7
JetMac 2021-03-05 17:51:29 +08:00
|
8
HariopaNic OP @JetMac 你这个就进入的时候调用一次啊,我的场景是 set 之后在 fetchdata 函数中拿不到最新的 state
|
9
HariopaNic OP @newbieRenew await setState 没用吧,我试了下没效果。
|
10
newbieRenew 2021-03-05 18:02:16 +08:00 via iPhone
你是不是用到定时器了,记得清除
|
11
Hanser002 2021-03-05 18:31:05 +08:00
你可以把 useEffect 当成 callback 使用
|
12
yushiro 2021-03-05 19:05:08 +08:00 via iPhone
用 useEffect,监听某个 state 的值,发生变化了,就会执行 effect
|
13
momocraft 2021-03-05 19:09:31 +08:00
如果你非常想要 callback 应该可以用 useState+useRef+useEffect 糊一个
|
14
imjamespond2020 2021-03-05 19:34:42 +08:00 via Android
好拿最新值直接 setFoo(foo=>这是最新的 foo)。。。。
|
15
DOLLOR 2021-03-05 19:52:59 +08:00 via Android
setState 可以接受一个函数,函数的参数就是最新值。
|