Today I Learned
날짜
2025년 1월 13일 월요일
내용
초기화되지 않는 컴포넌트
서버에 요청을 보내고 받아온 데이터로 작은 모달을 열어야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
facebookLogin() {
FB.login((response: any) => {
if (response.authResponse) {
let userData = response.authResponse;
this.coreApi.create(`shops/${this.shop.id}/facebook/login`, {
facebook_access_token: userData['accessToken'],
facebook_user_id: userData['userID'],
facebook_profile: '',
facebook_username: '',
}).subscribe(response => {
this.facebook_page_list = response.body.page_list;
const dialogRef = this.dialog.open(FacebookPageComponent, {
data: { facebookPageList: this.facebook_page_list },
minWidth: '600px',
minHeight: '600px'
});
}
분명 facebook_page_list
에는 올바른 데이터가 포함되는데 모달이 떠도 내부에 데이터가 보이지 않는다. 신기한건 그 페이지의 개발자도구를 키는 순간 데이터가 나타난다는 것.. 뭐 이런 듣도보도 못한 경우가 다 있나 싶었다.
원인은 찾지 못한채, 모달로 열리는 하위 컴포넌트가 초기화되지 않는 것이 문제라는 것만 알게 되었다. 따라서 시작할때 초기화를 억지로 시켜줬다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
constructor(
...
) {
// 초기화 시키기
setTimeout(() => {
this.ngOnInit();
});
}
ngOnInit() {
...
}
}
회고
원인이 뭘까