Angular 8 : 전역 변수 this.chats가 정의되지 않았습니다.

Vitelolo

Chat 이라는 모델 이 있으며 다음과 같습니다.

export class Chat {
chatId?: number;
chatUser1?: string;
chatUser2?: string;
chatStatus?: string;
created_at?: any;
updated_at?: any;
deleted_at?: any;

}

commponent 에서 특정 값을 가진 chatUser2찾고 싶기 때문에이 모델에 대해 chats 라는 배열을 선언했습니다 .

chats:Chat[];

그런 다음이 기능을 얻었습니다.

getChats(): void { 
this.loadingChats = true;

this.chatService.getChats().subscribe((data: any[]) => {
  this.chats = data;
});

this.toCall=true;
this.toAnswer=false;
this.toHangUp=false;
var status="true";

var chatUser2 = [];
var chatStatus = [];
var chatChannel = [];

chatUser2 = this.chats.map((v)=>v.chatUser2);
chatStatus = this.chats.map((v)=>v.chatStatus);
chatChannel = this.chats.map((v)=>v.chatId.toString());

var size = chatUser2.length;



for(var i=0; i<size ; i++) 
{
  console.log(i.toString());
  if(chatUser2[i] === this.userName && chatStatus[i]===status) 
  {
    this.toAnswer=true; 
    this.toCall=false;
    this.toHangUp=false;
    this.channel=chatChannel[i]; 
    console.log("break");
    break;
  }
}

그러나 콘솔 프로그램이 오류 오류 형식 오류 : "this.chats은 정의되지 않는다" 에서 :

chatUser2 = this.chats.map((v)=>v.chatUser2);

감사합니다.

Malsarmavi

chatService.getChats()(관찰 가능)은 완료 될 때까지 기다려야하는 비동기 작업으로, async / await를 사용하여이 문제를 해결하는 한 가지 방법입니다.

async getChats() : Promise<void> { 
this.loadingChats = true;

this.chats = await this.chatService.getChats().toPromise();

this.toCall=true;
this.toAnswer=false;
this.toHangUp=false;

var status="true";
var chatUser2 = [];
var chatStatus = [];
var chatChannel = [];

chatUser2 = this.chats.map((v)=>v.chatUser2);
chatStatus = this.chats.map((v)=>v.chatStatus);
chatChannel = this.chats.map((v)=>v.chatId.toString());

var size = chatUser2.length;

for(var i=0; i<size ; i++) 
{
  console.log(i.toString());
  if(chatUser2[i] === this.userName && chatStatus[i]===status) 
  {
    this.toAnswer=true; 
    this.toCall=false;
    this.toHangUp=false;
    this.channel=chatChannel[i]; 
    console.log("break");
    break;
  }
}

또 다른 옵션은 코드를 구독 메서드의 본문으로 이동하는 것입니다.

getChats(): void { 
this.loadingChats = true;

this.chatService.getChats().subscribe((data: any[]) => {
  this.chats = data;
  // .... 
});

}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Angular 2 구성 요소 전역 변수가 정의되지 않았습니까?

분류에서Dev

jquery에 전역 변수가 설정되지 않았습니다.

분류에서Dev

전역 적으로 가져온 변수가 정의되지 않았습니다.

분류에서Dev

폴리머 키 전역 변수가 정의되지 않았습니다. 왜?

분류에서Dev

JavaScript 전역 변수가 변경되지 않았습니다.

분류에서Dev

생성자 변수가 내 인터셉터에서 정의되지 않았습니다 (Angular 8).

분류에서Dev

전역 변수가 업데이트되지 않았습니다.

분류에서Dev

Angular 2 구성 요소 전역 변수가 Reactive Form 컨트롤러 valueChanges 이벤트 내에서 정의되지 않았습니다.

분류에서Dev

Ruby on Rails의 지역 변수가 정의되지 않았습니다.

분류에서Dev

globals ()에 나타나지만 전역 변수가 정의되지 않았습니다.

분류에서Dev

클래스를 가져올 때 전역 변수가 정의되지 않았습니다.

분류에서Dev

Vue | npm 실행 서브 | ESLint 전역 변수가 구성 요소 내에 정의되지 않았습니다.

분류에서Dev

MATLAB 역함수가 정의되지 않았습니다.

분류에서Dev

Angular2 ActivatedRoute 매개 변수가 정의되지 않았습니다.

분류에서Dev

전역 변수가 명확하게 정의 된 경우 "전역이 정의되지 않았습니다"오류가 발생합니다.

분류에서Dev

전에 변수를 정의했지만 React Child prop 변수가 정의되지 않았습니다.

분류에서Dev

NameError 전역 이름 'ImageDraw'가 정의되지 않았습니다.

분류에서Dev

NameError : 전역 이름 'profiles'가 정의되지 않았습니다.

분류에서Dev

NameError : 전역 이름 'profiles'가 정의되지 않았습니다.

분류에서Dev

Python : 전역 이름 'foobar'가 정의되지 않았습니다.

분류에서Dev

전역 이름 'inf'가 정의되지 않았습니다.

분류에서Dev

NameError : 전역 이름 'q'가 정의되지 않았습니다.

분류에서Dev

전역 이름 '거리'가 정의되지 않았습니다.

분류에서Dev

NameError : 전역 이름 'text'가 정의되지 않았습니다.

분류에서Dev

변수가 정의되지 않은 함수에 매개 변수를 전달할 수 없습니다. Angular 11

분류에서Dev

자바 스크립트의 콜백 함수에서 지역 변수가 정의되지 않았습니다.

분류에서Dev

변수 / 매개 변수가 정의되지 않았습니다.

분류에서Dev

PHP 전역 변수가 변경되지 않습니다.

분류에서Dev

구성표 전역 변수가 변경되지 않습니다.

Related 관련 기사

  1. 1

    Angular 2 구성 요소 전역 변수가 정의되지 않았습니까?

  2. 2

    jquery에 전역 변수가 설정되지 않았습니다.

  3. 3

    전역 적으로 가져온 변수가 정의되지 않았습니다.

  4. 4

    폴리머 키 전역 변수가 정의되지 않았습니다. 왜?

  5. 5

    JavaScript 전역 변수가 변경되지 않았습니다.

  6. 6

    생성자 변수가 내 인터셉터에서 정의되지 않았습니다 (Angular 8).

  7. 7

    전역 변수가 업데이트되지 않았습니다.

  8. 8

    Angular 2 구성 요소 전역 변수가 Reactive Form 컨트롤러 valueChanges 이벤트 내에서 정의되지 않았습니다.

  9. 9

    Ruby on Rails의 지역 변수가 정의되지 않았습니다.

  10. 10

    globals ()에 나타나지만 전역 변수가 정의되지 않았습니다.

  11. 11

    클래스를 가져올 때 전역 변수가 정의되지 않았습니다.

  12. 12

    Vue | npm 실행 서브 | ESLint 전역 변수가 구성 요소 내에 정의되지 않았습니다.

  13. 13

    MATLAB 역함수가 정의되지 않았습니다.

  14. 14

    Angular2 ActivatedRoute 매개 변수가 정의되지 않았습니다.

  15. 15

    전역 변수가 명확하게 정의 된 경우 "전역이 정의되지 않았습니다"오류가 발생합니다.

  16. 16

    전에 변수를 정의했지만 React Child prop 변수가 정의되지 않았습니다.

  17. 17

    NameError 전역 이름 'ImageDraw'가 정의되지 않았습니다.

  18. 18

    NameError : 전역 이름 'profiles'가 정의되지 않았습니다.

  19. 19

    NameError : 전역 이름 'profiles'가 정의되지 않았습니다.

  20. 20

    Python : 전역 이름 'foobar'가 정의되지 않았습니다.

  21. 21

    전역 이름 'inf'가 정의되지 않았습니다.

  22. 22

    NameError : 전역 이름 'q'가 정의되지 않았습니다.

  23. 23

    전역 이름 '거리'가 정의되지 않았습니다.

  24. 24

    NameError : 전역 이름 'text'가 정의되지 않았습니다.

  25. 25

    변수가 정의되지 않은 함수에 매개 변수를 전달할 수 없습니다. Angular 11

  26. 26

    자바 스크립트의 콜백 함수에서 지역 변수가 정의되지 않았습니다.

  27. 27

    변수 / 매개 변수가 정의되지 않았습니다.

  28. 28

    PHP 전역 변수가 변경되지 않습니다.

  29. 29

    구성표 전역 변수가 변경되지 않습니다.

뜨겁다태그

보관