我一直在nuxtjs中构建我的第一个应用程序,但是vue状态存在一些问题。
我已经集成了vuex-persistedstate
和js-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()方法中不是一个好主意。
有什么办法解决这个问题?
非常感谢。
答案 0 :(得分:1)
我遇到了同样的问题。我使用this.$nextTick()
而不是setTimeout()
进行了修复。我认为这样比较干净。