vue.js - 不可靠的数据 Vuex
问题描述
我正在尝试使用 Vuex,但无法理解为什么我的数据不是预期值。
我想要做的是将getter的结果传递给突变提交,如下所示
// TEST PRINT: return value of getter
console.log(this.$store.getters.reservationsCurrentWeek);
switch (this.activeCalendar) {
case 'week':
// Commit with getter result
this.$store.commit('setShownReservations', this.$store.getters.reservationsCurrentWeek);
break;
第一次打印显示了预期的结果。但是,当我打印突变内部实际传递的值时,如下所示:
// TEST PRINT: return value of getter
console.log(this.getters.reservationsCurrentWeek);
// TEST PRINT: parameter passed to the mutation.
console.log(value);
state.shownReservations = value;
参数值不是 getter 返回的值(而是一些旧值)。当我直接在我的突变中访问 getter 时,它也会给出正确的值。我不明白为什么我不能将 getter 的结果作为参数传递给突变提交,以及为什么它会产生不可靠的值?
解决方案
你想从哪里访问this.getters.reservationsCurrentWeek
?如果您正在访问来自突变的吸气剂,并且吸气剂和突变放置在一个文件中,您可以使用
mutations: {
YOUR_MUTATION(state, {data, getters}) {
console.log(getters);
}
}
然后访问吸气剂。或者如果它放在单独的文件中,则从另一个文件导入 getter。
推荐阅读
- matplotlib - 将 Webscraped 数据绘制到 matplotlib 上
- node.js - 如何使用 sequelize 从 graphql 中的映射表中访问数据
- php - 类型为 SINGLE_COLLECTION 架构的 ODM 继承文档创建错误
- r - 用于安装软件包的 R 版本记录在哪里?
- amazon-web-services - 当同一子网用于另一项服务时,AWS VPC 对等不工作
- python - 如何根据趋势创建新列?
- c++ - 为什么在使用 stoi 时出现“std::out_of_range”错误?
- c++ - STB 图片不加载图片
- jenkins - 詹金斯在更换代理后冻结了 sh 命令
- jquery - 是否可以在 if 语句中嵌套 jQuery 事件侦听器?