如何解决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 举报,一经查实,本站将立刻删除。