this.$route.path报错
时间: 2023-12-12 07:05:38 浏览: 98
这个错误通常是因为你在组件中使用了 `this.$route.path`,但是没有在组件中导入 `vue-router`。你需要确保在组件中导入 `vue-router` 并在 `created` 生命周期函数中使用 `$route.path`。具体的代码示例如下:
```
<template>
<div>{{ currentPath }}</div>
</template>
<script>
import { mapState } from 'vuex'
import { VueRouter } from 'vue-router'
export default {
name: 'MyComponent',
mixins: [VueRouter],
created() {
this.currentPath = this.$route.path
},
computed: {
...mapState(['currentPath'])
}
}
</script>
```
如果你已经导入 `vue-router` 并且仍然遇到问题,请检查是否正确安装了 `vue-router`。你可以在终端中运行以下命令安装 `vue-router`:
```
npm install vue-router
```
相关问题
我要判断从recovery-list路由跳过来的话,就把路由传过来的参数赋值,像这样this.feedBackItem = this.$route.query.row,这是我的代码,但这样写报错,你能给我改一下吗mounted() { this.showFeedbackDrawer() console.log(this.$route.query.row, '----'); }, beforeRouteEnter(to, from, next) { next(vm => { if(from.path == '/recovery-list') { this.feedBackItem = this.$route.query.row } }); },
在 `beforeRouteEnter` 钩子函数中,`this` 指向的是组件实例还未被创建的情况下,所以无法直接通过 `this` 来访问组件的数据和方法。正确的做法是通过 `vm` 参数来访问组件实例,将代码修改为如下所示:
```javascript
mounted() {
this.showFeedbackDrawer();
console.log(this.$route.query.row, '----');
},
beforeRouteEnter(to, from, next) {
next(vm => {
if(from.path == '/recovery-list') {
vm.feedBackItem = vm.$route.query.row;
}
});
},
```
在以上代码中,我们通过 `vm` 参数来访问组件实例,将路由参数 `row` 赋值给组件的 `feedBackItem` 数据属性。
this.$router.push报错
this.$router.push报错是因为最新版的vue-router引入了promise,当使用this.$router.push()时会返回一个promise对象。如果没有捕获这个promise对象,就会出现Uncaught (in promise)错误。解决这个问题的方法有两种。第一种方法是直接在push()后调用一个catch方法,例如this.$router.push(this.path).catch(err=>err)。第二种方法是重写原型中的push方法,具体的代码可以参考这个链接:https://blog.csdn.net/haidong55/article/details/100939076。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [$route.push()多次点击跳转报错问题](https://blog.csdn.net/qq_52693197/article/details/124692850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [调用$router.push()时报出Uncaught (in promise)错误](https://blog.csdn.net/weixin_42761614/article/details/113346398)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文