yxcoder
V2EX  ›  前端开发

[React] 求助: react hooks zustand setTimeout

By yxcoder at 2023 年 6 月 8 日 · 1330 次点击

zustand store 中存储了一个 timer 保存计时器

dataMap[id] = {
    ...
    timer
    ...
}


useBus(
    type, 
    ()=>{
    	...
    	updateTime()
        ...
    }
)

updateTime = (id) => {
    console.log(dataMap[id].timer)      --------- ( 1 )
    clearTimeout(dataMap[id].timer)
    const timer = setTimeout(()=>{
    	...
    }, 1000)
    store.updateDataMap(id, timer)
}

store.updateDataMap: (id, timer) => set((data)=>{
	data[id].timer = timer
    return data
})

发现每次( 1 )处打印的都是第一次的 timer, 后面的 updateDataMap 似乎没有起作用

求助

问题出在哪里?

第 1 条附言  ·  2023 年 6 月 8 日
发现在 setTimeout 中更新 store 会有问题
1 条回复  •  2023-06-08 16:41:23 +08:00
FrankFang128
   1
FrankFang128  
   2023 年 6 月 8 日
© 2026 V2EX · 26ms · 3.9.8.5