parameters - nuxt :访问存储在 vuex 存储中的全局变量
问题描述
在我的 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 函数不应该有参数?有更好的解决方案吗?
埃里克。
解决方案
您无需在商店中为 getter 指定新参数
例如,您仅使用索引检索信息的吸气剂:
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 问题
我不知道这是否是一个好习惯,因为我以前从未这样使用过它,我总是直接在组件中对数据进行过滤。
推荐阅读
- python - 如何将 Mixpanel 分析集成到 Django 后端?
- mysql - 如何创建我只能从另一个表中添加值的列
- json - 尝试在区域之间复制快照时,Lambda 函数抛出“您无权执行此操作”
- php - Codeigniter 的 nginx 重写规则无法正常工作
- java - 只产生一次错误输出
- ios - 新的 GMaps 渲染器在将地图拖入 iOS phonegap 应用程序之前不会加载图块
- apache-spark - Spark 历史服务器和清除历史
- java - 为什么 TwitterLoginButton 在 Android 上不会膨胀?
- python - python zeroconf 显示 IPv4 地址
- sql - SQL SERVER通过表值参数插入/更新表记录