Vue 中的 Laravel Echo 不使用挂载钩子

问题描述

当对带有以下代码的帖子发表新评论时,我使用 larvavel echo 向用户发送私人通知

 mounted(){
 window.Echo.private(`App.User.${this.user.id}`)
.notification((notification) => {
    console.log(notification.comment);
});
}

这是可行的,但用户数据是使用 mapState 访问的,所以每当我刷新页面时,用户信息都是未定义的。有没有一种方法可以在不使用挂载钩子的情况下使用 laravel echo,或者在不使用 vuex-persistedstate 的情况下使用户状态跨页面持久化。

目前我正在做的是设置一个计时器来延迟,直到在挂载的钩子中设置用户值:

     if(this.$store.getters.isLoggedIn){
      this.$store.dispatch('setUser');
      this.$store.dispatch('fetchNotifications');
    }
    setTimeout(()=>{
   this.checkNotification();

  },3000)

这行得通,但我认为这不是最好的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)