V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yxcoder
V2EX  ›  前端开发

[React] 求助: react hooks zustand setTimeout

  •  
  •   yxcoder · 2023-06-08 16:37:47 +08:00 · 547 次点击
    这是一个创建于 527 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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-06-08 18:56:45 +08:00
    发现在 setTimeout 中更新 store 会有问题
    1 条回复    2023-06-08 16:41:23 +08:00
    FrankFang128
        1
    FrankFang128  
       2023-06-08 16:41:23 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:58 · PVG 12:58 · LAX 20:58 · JFK 23:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.