出现这种情况是因为更新vuex里store的数据太慢的原因吗?
发布于 8 年前 作者 luogue 3459 次浏览 来自 问答

这个贴子因为用了一点markdown,出现了一些奇怪的东西。。。 一个组件上绑定了点击事件(点击事件更新vuex里的数据status), 跳转到另一个组件加载后需要调用这个数据, 但是在初次进入组件时, 获取不到值, 其实此时的值是正确的, 调试就能得出这个结论,有可能是组件加载的速度比数据更新的速度快

foo.vue html

<div [@click](/user/click)="updateStatus">
     <router-link to="bar"></router-link>
<div>

js

methods: {
    updateStatus () {
        this.$store.commit('setStatus', true)
    }
}

bar.vue

<div v-if="$store.state.status">right</div>
<div v-else>error</div>

显示error 打断点调试,在bar.vue里获取到的status是正确的

后来我试了一下 a. 把@click改成@mousedown b. 不写点击路由组件, 在updateStatus()方法里写this.$router.push({path: ‘bar’})

这两种方式都可以显示正确 我这种处理办法会不会不靠谱啊

回到顶部