NuxtJs Vuex | Неожиданный токен, когда я пытаюсь использовать…mapGetters или … mapActions

#javascript #vue.js #vuex #nuxt.js

#javascript #vue.js #vuex #nuxt.js

Вопрос:

Я новичок в NuxtJs. Когда я пытаюсь позвонить…mapGetter Я получаю эту ошибку выше и ничего не нахожу. Я пытаюсь следовать руководству nuxt, но ничего не могу найти о том, как использовать mapGetters.

Это ошибка оболочки:

 Syntax Error: Unexpected token (37:4)                                                                                 friendly-errors 21:58:14

  35 | 
  36 |   computed() {
> 37 |     ...mapGetters(['currentUser'])
     |     ^
  38 |   },
  39 | 
  40 |   methods: {

                                                                                                                      friendly-errors 21:58:14
 @ ./pages/index.vue?vueamp;type=scriptamp;lang=jsamp; 1:0-227 1:243-246 1:248-472 1:248-472
 @ ./pages/index.vue
 @ ./.nuxt/router.js
 @ ./.nuxt/index.js
 @ ./.nuxt/client.js
 @ multi ./node_modules/@nuxt/components/lib/installComponents.js eventsource-polyfill webpack-hot-middleware/client?reload=trueamp;timeout=30000amp;ansiColors=amp;overlayStyles=amp;path=/__webpack_hmr/clientamp;name=client ./.nuxt/client.js
  

Это мой код хранилища:

 // store/user.js

export const state = () => ({
  user: {},
})

export const getters = {
  currentUser: (state) => {
    return state.user
  },
}

export const actions = {
  doLogin: ({ commit }, params) => {
    const mock = { username: params.username, token: '123' }

    commit('setUser', mock)
  },
}

export const mutations = {
  setUser: (state, user) => {
    state.user = user
  },
}
  

Комментарии:

1. computed: { ...mapGetters( и т.д. — т.е. вычисляется не функция, это просто свойство — vuex.vuejs.org/guide/getters.html#the-mapgetters-helper

Ответ №1:

Прежде всего, вычисляется свойство, а не функция

 export default {
   computed: {
      /***/
   }
}
  

И, во-вторых, вы используете модульную (пользовательскую, в вашем случае) систему для инициализации хранилища. Вам также необходимо указать имя модуля при отображении хранилища (ожидайте index.js ), вот так

 computed: {
     ...mapGetters("user", ["currentUser"])
   }