从方法访问vue组件中的数据

时间:2018-05-24 09:42:17

标签: typescript vue.js ecmascript-6 components

我目前在正确的上下文中在VueJs组件中使用“this”时遇到了麻烦。 我已经阅读了很多答案,主要是指不使用箭头功能。正如你在我附加的代码块中看到的那样,我已经用常规代码替换了箭头函数,而且......上下文现在不同了但是关于错误消息


“TS2339:属性'answer1'在类型'{receiveValues(value1:string,value2:string)上不存在:void; test():string;}'。” 上下文现在是方法对象。 我现在浪费了很多时间来解决这个问题,我真的不知道该怎么做。所以我的问题是,如何才能获得正确的上下文来访问数据?我感谢每一个帮助和tipps!我在ES2015上使用ts编译器。 代码

export default {
name: 'app',
components: {
  Editor,
  Chart,
},
methods: {
  receiveValues(value1: string, value2: string) {
    console.log(value1); 
    this.answer1 = value1; // This is where the error is thrown
    console.log('receiveValues ' + this.test()); // this works just fine
  },
  test() {
    console.log('blablabla');
    return 'did it';
  },
},
data() {
  return {
    content: 'I\'m Test Content!',
    answer1: '',
    answer2: '',
    answer3: '',
    answer4: '',
  };
},

<小时/> 例如,与this post不同,我的'this'上下文仅引用方法对象,因此我只能调用其函数,而不能调用组件本身的数据。

3 个答案:

答案 0 :(得分:2)

如果在以基于对象的方式使用打字稿时在vuejs中遇到ts2339错误:

export default{}

检查以下步骤:

  1. 首先,您应将lang设置为“ ts