在我的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 TypeError:_vm。$ store.getters.getDayLabel不是函数
我已经阅读了一些主题,即getter函数应该没有参数?有更好的解决方案吗?
埃里克。
答案 0 :(得分:1)
您无需在商店中为吸气剂指定新参数
例如一个获取器,其中您仅使用索引来检索信息:
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
我不知道这是否是一个好习惯,因为我以前从未像这样使用过它,所以我总是直接在组件中过滤数据。