Static GitHub Issues

[2520] Computed property not updated when state updated.

prev: Understanding Nuxt request lifecyle
next: asyncData with router query in next tag call only once even query changed

Hi

I took enough time searching for a solution for this issue. but with no luck. I read many article/blogs/issues but still cannot resolve my issue. Maybe I don't get it right. I need your help.

Inside user profile page there is avatar component which have computed property named 'avatar ' should hold user avatar path. This property is mapped to Vuex store getter. Whenever the state change (avatar changed/updated by user) property should reflect that change.

On the other hand. i'm using 'js-cookie' to handle user data/token. Once user login the cookie is set with user data/token information which include user avatar path. If user revisit website after for example two days. Application will extract data from cookies.

Now the issue happen when i retrive data from cookie. the avatar computed property never updated.

layout/default.vue

if(Cookies.get('wd_cookie') != undefined){
      let user = JSON.parse(Cookies.get('wd_cookie'));
      this.$store.commit('logUserIn', user);
    }

store/index.js

export const mutations = {
logUserIn(state, user){
      state.userLoggedIn = true;
      Vue.set(state, 'user', {
        id: user.id,
        email: user.email,
        name: user.name,
        avatar: user.avatar,
      });
}
}

export const getters = {
  userAvatar: state => {
    if(state.user.avatar != null){
      return state.user.avatar;
    }
    return '/avatar-placeholder.png';
  }
}

my component avatar.vue

<script>
export default {
  computed: {
    avatar(){
      return this.$store.getters.userAvatar;
    }
  }
}
</script>

Any help please

<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This question is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c2189">#c2189</a>)</em></sub></div>