TransWikia.com

ERROR TypeError: platformFormService.getTaskCandidateGroupId is not a function

Stack Overflow на русском Asked on January 1, 2021

Есть класс с такой функцией.

@Injectable()
export class PlatformFormService {
 public getTaskCandidateGroupId(): string {
      const task: any = this.platformStateService.getSelectedTask();
      if (task && task._embedded && task._embedded.identityLink && task._embedded.identityLink.length > 0) {
        return task._embedded.identityLink[0].groupId;
      }
      return undefined;
  }
}

в разных классах функция работает корректно.
Но вот тут ее вызовы валиться с ошибкой.

export function validateDocuments(platformService: PlatformFormService): ValidationErrors | null {

  const platformFormService: any =  PlatformFormService;
  const candidateGroupId: string = platformFormService.getTaskCandidateGroupId();
}

как мне функцию getTaskCandidateGroupId() ее вызвать?

если вызываю через переменную в методе вот так

const candidateGroupId: string = platformService.getTaskCandidateGroupId();

то падает ошибка ERROR TypeError: Cannot read property 'getTaskCandidateGroupId' of undefined

One Answer

В данном методе лишняя строчка

const platformFormService: any =  PlatformFormService;

В ней в локальную переменную сохраняется сам класс. Так как метод не статичный, при попытке вызвать его непосредственно у класса - приводит к ошибке.

Вместо этого нужно воспользоваться переданным параметром. Для этого достаточно удалить указанную строку.

Answered by Grundy on January 1, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP