vue.js / Vue getter not defined error

Я получаю сообщение об ошибке в компоненте App.vue, getter: logged

<li id="shoppinglists" v-if="!logged">...

ERROR LOG: '[Vue warn]: Property or method "logged" is not defined on the instance but referenced during render. 
Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. 

Я не понимаю, почему он указан как неопределенный, поскольку я не получаю ошибки с другим определенным получателем: currentUserId

<li v-else id="shoppinglists"><router-link :to="{ name: 'ShoppingLists', params: { id: currentUserId } }" >Shopping Lists</router-link></li>

Bothe определяются как вычисленные реквизиты:

<script>
import store from '@/vuex/store'
import { mapGetters } from 'vuex'

export default {
  name: 'app',
  computed: {
    ...mapGetters([
      { currentUserId: 'getCurrentUserId' },
      { logged: 'getCurrentUserStatus' }
    ])
  },
  store
}
</script>

а мой vex / getters.js:

vuex / getters.js

export default {
  getCurrentUserStatus: state => state.logged,
  getCurrentUserId: state => state.currentUserId,
  ...
}

и мой магазин

vuex / store.js

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
...

Vue.use(Vuex)

const state = {
  logged: false,
  currentUserId: '',
  ...
}

export default new Vuex.Store({
  state,
  getters,
   ...
})

person Community    schedule 23.10.2017    source источник


Ответы (1)


Просто передайте объект ...mapGetters, если вы хотите использовать геттеры с другим именем

Итак, синтаксис:

...mapGetters({
      currentUserId: 'getCurrentUserId',
      logged: 'getCurrentUserStatus' 
 })
person Vamsi Krishna    schedule 23.10.2017
comment
Большое спасибо ... Я не понял, когда написал ... Я думал, что это массив объектов ... теперь я вижу привязку vex в моем инструменте Vue ...! - person ; 23.10.2017