相关疑难解决方法(0)

VueJS:为什么"这个"未定义?

我正在用Vue.js创建一个组件.

当我引用this中的任何所述的生命周期钩(created,mounted,updated等等)它的计算结果为undefined:

mounted: () => {
  console.log(this); // logs "undefined"
},
Run Code Online (Sandbox Code Playgroud)

在我的计算属性中也发生了同样的事情:

computed: {
  foo: () => { 
    return this.bar + 1; 
  } 
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获的TypeError:无法读取未定义的属性"bar"

为什么在这些情况下进行this评估undefined

javascript this vue.js vuejs2

46
推荐指数
2
解决办法
2万
查看次数

Vue手表[胖箭范围]提供错误的上下文

我正在使用lodash去抖动函数调用,但我想知道为什么我的this值不像我期望的那样继承范围.

这些是我的Vue组件的相关部分.

import debounce from 'lodash/debounce';

watch: {
    query: debounce(() => {
        this.autocomplete();
    }, 200, {
        leading: false,
        trailing: true
    }),
Run Code Online (Sandbox Code Playgroud)

上面的情况不起作用,因为我的this值不指向Vue组件,而是显示如下的Object:

Object
    __esModule: true
    default: Object
    __proto: Object
Run Code Online (Sandbox Code Playgroud)

我的箭头语法是不是要继承上下文this

以下似乎工作正常:

query: debounce(function test() {
    this.autocomplete();
}, 200, {
    leading: false,
    trailing: true
})
Run Code Online (Sandbox Code Playgroud)

对此可能有一个简单的答案,但我希望有人可以帮助我.

javascript ecmascript-6 vue.js vue-component vuejs2

3
推荐指数
2
解决办法
948
查看次数

Typescript 显示“this”对象的错误,提示 TS2532:对象在 vue 方法中可能是“未定义”

由于我对写问题还很陌生,我对可能的错误表示歉意。

问题:我有一个带有打字稿的 vue 应用程序。

export default {
    methods: {
        setProgram: (program: Program)=>{
            this.program = program // TS2532: Object is possibly 'undefined'.
            this.step++ // TS2532: Object is possibly 'undefined'.
        }
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

虽然我真的很喜欢打字稿的这个功能,但我真的确信,在这种情况下“this”不会是未定义的。

我怎样才能让打字稿平静下来关于“this”的使用?

非常感谢大家,祝你有美好的一天!

最好的多姆。

javascript typescript vue.js vuejs3

1
推荐指数
1
解决办法
5733
查看次数

vuejs 数据函数返回对象不起作用

我知道 vue 期望 data 是一个返回对象的函数,所以:

data () {
  return {}
}
Run Code Online (Sandbox Code Playgroud)

有效,但这不起作用:

data: () => {

}
Run Code Online (Sandbox Code Playgroud)

为什么它不起作用?不是'它们都是返回一个对象的相同函数

javascript vue.js arrow-functions

0
推荐指数
1
解决办法
2811
查看次数