vue.js - 如何在脚本中使用 VUEX GETTERS
问题描述
我正在为一些变量使用 VUEX GETTERS。我可以在 html 部分中使用它们,但我不能在 script->data 部分中编辑或更改它们。
错误:[Vue 警告]:数据()中的错误:“ReferenceError:未定义位置”
<script>
import {mapGetters} from 'vuex'
export default {
data: () => ({
dialog: false,
TotalEntitiy:Positions[0] // GIVES ERROR
}),
computed:{
...mapGetters({
PageTitle: 'GETTER_CURRENT_PAGE',
headers: 'GETTER_HEADERS',
Positions: 'GETTER_POSITIONS',
items:'GETTER_ITEMS'
}),
解决方案
定义TotalEntity
一个新的计算属性,而不是组件数据的一部分,因为它必须根据存储中的值进行反应:
data: () => ({
dialog: false
}),
computed:{
...mapGetters({
PageTitle: 'GETTER_CURRENT_PAGE',
headers: 'GETTER_HEADERS',
Positions: 'GETTER_POSITIONS',
items:'GETTER_ITEMS'
}),
TotalEntity() {
return this.Positions[0];
}
}
this.Positions
更新:为了规避可能是null
or的潜在问题undefined
,您可以使用可选的链接运算符?.
:
return this.Positions?.[0];
您还可以使用nullish 合并运算符回退到默认值:
return this.Positions?.[0] ?? YOUR_FALLBACK_VALUE;
推荐阅读
- python - 我的简单散景图中出现的额外线条是什么?
- api - 从 Twitter 获取大量关于关注者的数据
- html - 如何在 Materializecss 的滑块中为图像添加线性渐变
- c++ - Problem to recover effective rights on a shared folder
- sum - mule dataweave 中的求和函数需要太多时间
- java - 如何配置 jackson 以将 Enum 转换为 JSON?
- javascript - 如何使用 YouTube API 获得热门 YouTube 搜索查询?
- php - 将单词/短语/句子分成三部分
- javascript - 从特定列表的视图中访问值
- c# - Mass Transit 可以自动扩展吗?