【问题标题】:Vue class component can't access data properties from constructorVue 类组件无法从构造函数访问数据属性
【发布时间】:2020-12-17 10:59:10
【问题描述】:

我正在尝试将 Vue 与 typescript 一起使用,但出现错误,说我的成员变量未定义。

import { Component, Vue, Prop } from 'vue-property-decorator';
import UploadApi from './UploadApi';
import ApiConfig from '../../api/api.config';

@Component
export default class UploadCard extends Vue {
  uploading = false;

  private uploads: Array<Upload> = [];

  private api: UploadApi = new UploadApi(ApiConfig.get());

  constructor() {
    super();
    this.getUploads();
  }

  private getUploads() {
    // const loading = this.$store.state.vs.loading();
    // mimic http request
    console.log(this.$data);
    console.log(this.uploading);
    this.api.getUploads().then((response) => {
      console.log(response);
    });

例如这里说 this.api 是未定义的,有人知道吗?

【问题讨论】:

  • 嗨!我不确定您的问题 - 您是否介意共享代码,或者您的 UploadApimofule 是什么样的?我们将能够更好地帮助您:D
  • 生命周期模型有效,使用 created 而不是构造函数。

标签: typescript vue.js vuejs2


【解决方案1】:

不要使用构造函数,而是使用lifecycle methods 来执行设置任务。例如,将您的构造函数替换为createdmounted

created() {
    this.getUploads();
}

详情请见the docs

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-12-26
  • 2023-04-02
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 2022-07-22
相关资源
最近更新 更多