Компонент класса Vue не может получить доступ к свойствам данных из конструктора

#typescript #vue.js #vuejs2

#typescript #vue.js #vuejs2

Вопрос:

Я пытаюсь использовать 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);
    });
  

Здесь, например, говорится следующее.api не определен, кто-нибудь знает об этом?

Комментарии:

1. Привет! Я не уверен в вашем вопросе — не возражаете ли вы поделиться кодом или, возможно, как выглядит ваш UploadApimofule? Мы сможем помочь вам лучше: D

2. Модель жизненного цикла работала, используя created вместо constructor .

Ответ №1:

Вместо использования конструктора используйте методы жизненного цикла для выполнения задач настройки. Например, замените ваш конструктор на created или mounted :

 created() {
    this.getUploads();
}
  

Пожалуйста, смотрите документы для получения более подробной информации.

Комментарии:

1. Итак, класс здесь — это отвлекающий маневр? вы игнорируете конструктор, но используете события жизненного цикла.

2. Да, я добавил ссылку на документы: class-component.vuejs.org/guide /…