作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试访问 beforeRouteLeave 内的数据,但一切都是未定义
下面的代码
<template>
...
</template>
<style lang="scss">
...
</style>
<script>
export default {
name: 'blog-new',
data() {
return {
isBodyChanged: false,
isPublished: false,
isTitleChanged: false,
}
},
created() {
...
},
beforeRouteLeave: (to, from, next) => {
console.log(this.isBodyChanged) //<--undefined
if (this.isBodyChanged) {
return next(false)
} else {
return next()
}
}
}
</script>
最佳答案
您需要使用 ES5 函数而不是箭头函数。使用 ES5 函数将使 this
关键字等于组件的实例,而箭头函数使用 lexical scoping .
beforeRouteLeave: function(to, from, next) {
if (this.isBodyChanged) {
return next(false)
} else {
return next()
}
}
但是,您也可以使用我认为很有帮助的简写。这与上面的计算结果相同。
beforeRouteLeave(to, from, next) {
if (this.isBodyChanged) {
return next(false)
} else {
return next()
}
}
关于javascript - Vue - 如何访问 beforeRouteLeave 内的数据 - 在 Component Guard 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47084820/
我目前正忙于用 jest 对 vue 组件的路由行为进行单元测试。离开组件时,Vue-router 的 'beforeRouteLeave' 导航守卫会运行一些逻辑。这个守卫在我的生产中运行的应用程序
我有一个简单的问题。我只想在路线更改时取消子组件。这是一个示例。有一个家庭组件,它是父组件。它有一个子组件。我只想在挂载的子组件中的路由发生变化时停止间隔函数 import Home from "./
尝试访问 beforeRouteLeave 内的数据,但一切都是未定义 下面的代码 ... ... export default { name: 'blog-new',
我是一名优秀的程序员,十分优秀!