[vuex状态在硬重载后未加载到nuxtjs mount()中]]

问题描述 投票:0回答:1

我一直在nuxtjs中构建我的第一个应用程序,但是vue状态存在一些问题。我已经集成了vuex-persistedstatejs-cookie以保持状态。

我正在尝试获取vuex状态并在组件内部状态(data () {})中设置值。

Notification.vue

computed: {
   ...mapState({
     user: state => state.auth.user
   })
 },
mounted() {
  this.notifications = this.user.notification
}

如果我从另一页面进入此页面,此方法很好。

但是如果我直接重新加载通知页面,this.user(vuex状态)为null。如果我将其包装在setTimeout()中,即使重新加载页面后也可以正确获取状态。

例如:

mounted () {
  setTimeout(() => {
    this.notification = this.user.notification
  })

我相信这是vuex和nuxtjs的异步问题,但我认为将setTimeout包装在所有组件Mounted()方法中不是一个好主意。

有什么办法解决这个问题?

非常感谢。

我一直在nuxtjs中构建我的第一个应用程序,但是vue状态存在一些问题。我已经集成了vuex-persistedstate和js-cookie来保持状态。我正在尝试获取vuex状态并设置...

javascript vue.js vuex nuxt.js persistent-storage
1个回答
1
投票

我遇到了同样的问题。我使用this.$nextTick()而不是setTimeout()修复了它。我认为这样比较干净。

© www.soinside.com 2019 - 2024. All rights reserved.