Vue.js VUE:通过computed MapGetter()在data()节中访问状态变量时未定义
在我的解决方案中,我已经成功地使用了很多…MapGetter,但是现在我需要在data()部分直接访问变量,似乎在访问变量时该变量还没有设置/准备好 MapGetter位于computed:{}部分 调试时,我注意到data()在computed:之前运行,所以。。我需要把手表放在这里吗 代码:Vue.js VUE:通过computed MapGetter()在data()节中访问状态变量时未定义,vue.js,vuejs2,vuex,Vue.js,Vuejs2,Vuex,在我的解决方案中,我已经成功地使用了很多…MapGetter,但是现在我需要在data()部分直接访问变量,似乎在访问变量时该变量还没有设置/准备好 MapGetter位于computed:{}部分 调试时,我注意到data()在computed:之前运行,所以。。我需要把手表放在这里吗 代码: data(){ return { FiltersVisible: false, orderList: {
data(){
return {
FiltersVisible: false,
orderList: {
currentPage: 1,
totalPages: ordersCount / 20,
// totalPages:80,
itemsPerPage: 20
}
}
},
computed: {
...mapGetters(['orders', 'ordersCount'])
// ...mapGetters(['orders'])
},
Vue状态(Chrome)的屏幕截图
请注意,getter已正确初始化
解决这个问题的方法有很多。您可以创建一个Vuex getter,它为您提供一个空值或默认值。这将至少确保没有错误,并且在您的商店启动时更新 您可以创建一个本地计算属性,并使用
mapGetter
获取存储值,这样您还可以提供一个默认值
您可以将totalPages
设置为0,并在存储值更改时使用观察程序更新值
这真的取决于上下文。例如,如果其他检索值的组件需要相同的默认回退,Vuex getter将非常有用。有很多方法可以解决这个问题。您可以创建一个Vuex getter,它为您提供一个空值或默认值。这将至少确保没有错误,并且在您的商店启动时更新 您可以创建一个本地计算属性,并使用
mapGetter
获取存储值,这样您还可以提供一个默认值
您可以将totalPages
设置为0,并在存储值更改时使用观察程序更新值
这真的取决于上下文。例如,如果您需要为其他检索该值的组件提供相同的默认回退,Vuex getter将非常有用。感谢您花时间回答@Stephan-v:)。。你有没有可能(通过代码)告诉我你会怎么做?又称作最简单的:)谢谢你花时间回答@Stephan-v:)。。你有没有可能(通过代码)告诉我你会怎么做?又称作最简单的:)你解决你的问题了吗@Terjeyeah是的:)那是很久以前的事了,所以我不记得解决方案是什么:)你解决了你的问题吗@Terjeyeah是的:)那是很久以前的事了,所以我不记得解决方案是什么:)