我有一个Vuex商店,里面有一个叫做 user
对象的状态。
在我的注销操作中,我或多或少地调用了这样的东西。
context.commit('setUser', null);
我的突变本质上是调用 state.user = null
(不是字面上的意思,只是在这个例子中),但是当我立即打电话给 console.log(state.user)
貌似什么都没发生。
什么是 "正确 "的方法来完全清除一个状态中的对象?
我发现了自己的问题。在我的 setUser
突变,我在检查 if (typeof user === 'object') { ... }
才执行基于对象的逻辑。好吧,事实证明 typeof null
实际上是评价为 "object"
这完全不是我所期望的。今天我知道了JS很奇怪。
我已经把我的支票更新为 if (user === null && typeof user === 'object')
.