【发布时间】:2020-09-20 05:55:10
【问题描述】:
我有一个组件尝试将路由参数与存储中的对象数组匹配,以查看路由名称/变量是否在对象中,如果匹配则显示来自对象的数据。但是,无论如何,它总是返回 false。它是从外部 JS 文件中提取数据,所以这可能是通过引用传递而不是硬定义它吗?
这是我的商店
import Vue from "vue";
import Vuex from "vuex";
import { productList } from "../assets/db.js";
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
productList: productList
},
mutations: {},
actions: {},
modules: {}
});
export default store;
这是组件内部的函数
created: function() {
for (let type in this.$store.state.productList) {
console.log(type.includes(this.$route.params.ptype))
}
}
路由是动态的,匹配ptype (this.$route.params.ptype)
但是它总是在控制台中返回 false。循环有问题吗?另外,如果有更好的方法来使用这样的路线显示数据,请告诉我!谢谢!
【问题讨论】:
-
输入你的代码
console.log(this.$store.state.productList),我想看看这个变量的内容。问题可能是这样的。 -
for..in在数组上迭代索引,而不是值。你可能想要for..of。db.js的productList导出示例会很有帮助 -
同意@Phil,也许使用
this.$store.state.productList.forEach(element => console.log(element))可以帮助访问该数组中的项目,而不仅仅是索引。请提供productList的值以便进一步了解。
标签: javascript vue.js vue-component vuex vue-router