nuxt: доступ к глобальным переменным, хранящимся в хранилище vuex - PullRequest
0 голосов
/ 30 ноября 2018

В моем приложении NUXT мне нужно предоставить общий массив для всех моих компонентов.Например, этот массив содержит метки недели:

export const state = () => ({
  days: [
      { code: '1', label: 'Lundi' },
      { code: '2', label: 'Mardi' },
      { code: '3', label: 'Mercredi' },
      ...
  ]
})

export const getters = {
  getDayLabel (state, dayCode) {
    return state.days[dayCode]
  },
}

В моем компоненте я должен отобразить метку дня.Для этого я написал в шаблоне компонента:

{{$store.getters['getDayLabel'](dayCode)}}

Но у меня есть эта ошибка:

app.js: 262 Ошибка типа: _vm. $ Store.getters.getDayLabel не является функцией

Я читал в некоторых темах, что функция получения не должна иметь параметров?Есть ли лучшее решение?

Эрик.

1 Ответ

0 голосов
/ 03 декабря 2018

Вам не нужно указывать новый параметр в хранилище для получателя

Например, для получателя, где вы извлекаете информацию только с индексом:

 export const getters = {
    getDayLabel: state => index => state.days[index]
}

В вашемшаблон: {{$store.getters['getDayLabel'](1).label }} --> output = Mardi

Если вы действительно хотите искать по коду, вы можете использовать функцию фильтра:

  getDayLabel: state => {
    return dayCode => state.days.filter(c => {
      return c.code === dayCode
    })
  }

В вашем шаблоне: {{$store.getters['getDayLabel'](2)[0].label }} --> output = Mardi

Подробнееинформация здесь Github Issue

Я не знаю, является ли это хорошей практикой или нет, потому что я никогда не использовал ее таким образом, я всегда делаю фильтр данных непосредственно в компоненте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...