【发布时间】:2021-02-28 13:48:50
【问题描述】:
我有一个 getter,所有产品都存储在那里,当我想根据 this.$route.params.id 动态获取一个产品时,它不会返回任何值
当我导航到某个产品时,此代码可以正常工作,但是当我刷新页面时,我会丢失所有内容
computed: {
...mapGetters(["getAllProducts"]),
product() {
return this.getAllProducts.filter(item => {
return item.id === this.$route.params.id;
});
}
}
但是,如果我在 filter() 中提供静态值而不是像下面这样的 this.$route.params.id,它会起作用
product() {
return this.getAllProducts.filter(item => {
return item.id === 1;
});
}
我真的不知道问题出在哪里,尽管在我项目的另一个组件中,我对一些计算属性做了一些过滤并且它起作用了
更新:路线配置
{
path: "/product/:id",
name: "product-page",
component: ProductPage,
props: true
}
【问题讨论】:
-
console.log(this.$route.params.id;) 在 product() 方法中的结果是什么?
-
这取决于我导航到的产品。它按预期返回数字。
-
能否在product()方法的第一个添加const _self = this,并在filter method()中调用_self.$route.params.id?
-
我试过了。还是不行。
-
请分享路线配置
标签: javascript html vue.js vuejs2 vue-router