You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zustand带persist中间件的Store无法写入LocalStorage问题求助

Zustand带persist中间件的Store无法写入LocalStorage问题求助

嘿各位大佬,我最近在搞Zustand状态管理的时候遇到了个卡壳的问题,想请大家帮忙看看!

我的需求是这样的:目前先给用户自动分配一个UUID作为临时ID,后续用户登录后再替换成他们的真实用户ID;如果是游客模式的话,这个随机生成的UUID要能在浏览器会话之间保留下来,不会一刷新就变。

我写了下面这段Zustand Store的代码,用了persist中间件来持久化到localStorage:

import { create } from 'zustand';
import { persist } from 'zustand/middleware';

export interface UserState {
  /* User identity */
  userId: string;
}

export const useUserStore = create<UserState>()(
  persist(
    (): UserState => ({
      userId: crypto.randomUUID(),
    }),
    {
      name: 'myioko-user-storage',
    },
  ),
);

但实际运行的时候完全不符合预期:每次刷新页面,userId都会重新生成一个新的,而且我在浏览器的localStorage里根本找不到myioko-user-storage这个键值对。我试了两个不同的浏览器,甚至用了隐身/隐私模式,结果都是一样的。更奇怪的是,我手动调用localStorage.setItem()去存值是能成功的,但Zustand的persist中间件就是不往里面写东西。

有没有大佬遇到过类似的问题?或者能帮我看看代码里哪里写错了吗?万分感谢!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 12:54:37