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

切换sessionStorage后登出报错:无法解构useSelector返回值的token

问题原因

核心问题是登出后Redux状态中的auth.user变为null,页面代码直接对null进行解构操作,导致无法读取token属性报错。切换到sessionStorage后触发该问题的具体原因如下:

  • Redux初始化逻辑处理差异:应用启动时会从存储中读取用户信息初始化auth.user。原localStorage逻辑可能在读取不到数据时,将auth.user设为空对象{},此时解构token只会得到undefined,不会报错;但切换到sessionStorage后,读取不到数据时直接将auth.user设为null,登出删除sessionStorage的user后,若页面触发状态重新初始化(比如刷新、路由跳转),auth.user就会变成null,触发解构报错。
  • 登出时Redux状态未同步正确重置:你的logout函数仅删除了sessionStorage中的用户数据,但没有在Redux的authSlice中同步将auth.user重置为空对象{},而是让其变为null,导致页面组件读取状态时解构失败。
  • sessionStorage的特性间接影响:虽然sessionStorage仅在当前会话有效,但这里的核心问题并非特性本身,而是你在切换存储方式时,未同步调整Redux状态的初始化与重置逻辑,才导致null值进入状态引发报错。

内容的提问来源于stack exchange,提问作者user22092642

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:13:19