Ошибка типа: невозможно прочитать свойство 'process' из неопределенного - PullRequest
0 голосов
/ 09 апреля 2020

У меня такая проблема с кодом

Что такое лучшая практика? Спасибо

Ошибка: ошибка типа: невозможно прочитать свойство 'process' из неопределенного

myComponent.ts


  ProcessInfo: any | false;


  showSaveItems = () => {
    this.typeCategory = [];
    this.dataTypesLoop = [];

    if (this.ProcessInfo.process.data.mortgage.length) {
      for (let i = 0; i < this.ProcessInfo.process.data.mortgage.length; i++) {
        if (this.ProcessInfo.process.data.mortgage[i].mortgageHeader !== null) {
          const findItem = this.categories.find(
            obj =>
              obj.value ==
              this.ProcessInfo.process.data.mortgage[i].mortgageHeader.category
          );

        }
      }
    }

    this.dataTypes = new Set(this.dataTypesLoop);
    return new Set(this.typeCategory);
  };

myComponent. html


  <li *ngFor="let item of showSaveItems()">
       <strong>{{ item.text }}</strong>
   </li>

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

вам нужно создать экземпляр вашего параметра, прежде чем использовать его:

  ProcessInfo: any | false = false;

используя ': ', вы просто устанавливаете его тип, но его значение равно 'undefined', пока вы не используете ' = ';

Чтобы использовать параметр процесса вашего объекта, необходимо убедиться, что он существует:

if (this.ProcessInfo.hasOwnProperty('process')) {
  if (this.ProcessInfo.process.data.mortgage.length) {
      for (let i = 0; i < this.ProcessInfo.process.data.mortgage.length; i++) {
        if (this.ProcessInfo.process.data.mortgage[i].mortgageHeader !== null) {
          const findItem = this.categories.find(
            obj =>
              obj.value ==
              this.ProcessInfo.process.data.mortgage[i].mortgageHeader.category
          );

        }
      }
   }
}
0 голосов
/ 09 апреля 2020

Вы должны проверить, существует ли путь

 if (this.ProcessInfo && this.ProcessInfo.process && this.ProcessInfo.process.data && this.ProcessInfo.process.data.mortgage && this.ProcessInfo.process.data.mortgage.length>0) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...