Bug:login page keep loading

来源:8-7 Message 组件改进为函数调用形式

weixin_慕瓜2190768

2022-09-07

login的时候loader一直旋转

版本:
vue:3.2.38
vue-router:4.1.5
vuex:4.0.2

邮箱地址:123@test.com
密码:123123123

参考了老师的代码:
图片描述

截图:
图片描述

写回答

1回答

张轩

2022-09-08

同学你好

恭喜你找到了一个 vue 的内部的 bug~

假如将vue 的版本回退到 3.2.31 就会发现一切正常。

npm install vue@3.2.31

你的版本是 38,我看了代码,怀疑是两次连续的 commit,会让一次不起作用

// 原因在这里
store.commit('setError', { status: true, message: error })
store.commit('setLoading', false)
// 不清楚机制,有可能是 error 那里的 watch 阻断了更新,虽然 state 数据已经更新,但是界面没有更新

// 假如你还想使用这个版本,我们可以简单修改一下
// 使用 nextTick 包裹以后,会在上一次执行完毕,再执行下一次
// 就正常了
import { createApp, nextTick } from "vue"
nextTick(() => {
    store.commit('setLoading', false)
})

亲测有效。

未来这个 bug 应该会被修复掉,使用未来的新版本应该就没有这个问题了

2
1
阿康喜欢蓝色
老师我也出现这问题了,而且使用 nextTick 包裹以后仍不奏效。请问怎么排查?
2023-06-09
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3216 学习 · 2370 问题

查看课程