BehaviorSubject에서 다음 (..)을 설정할 때 런타임 오류가 발생합니다 (firebase.User | null 형BehaviorSubject 다음으로 정의되지 않았습니다.
subscribe.js:165 TypeError: Cannot read property 'next' of undefined
다음은 문제를 일으키는 코드입니다.
export class AppAuthService {
private currentUserSubject = new BehaviorSubject<firebase.User |null>(null);
public currentUser = this.currentUserSubject.asObservable().distinctUntilChanged();
private isAuthenticatedSubject = new ReplaySubject<boolean>(1);
public isAuthenticated = this.isAuthenticatedSubject.asObservable();
constructor(public afAuth: AngularFireAuth) {
afAuth.auth.onAuthStateChanged(this.onAuthStateChanged);
}
onAuthStateChanged(user: firebase.User): void {
if (user) {
this.currentUserSubject.next(user); <------err
this.isAuthenticatedSubject.next(true);
console.log('loggedIN!');
} else {
this.currentUserSubject.next(null); <-------err
this.isAuthenticatedSubject.next(false);
console.log('GONE!');
}
}
}
this.currentUserSubject.next(..)
이 사용자 obj 또는 null로 설정되면 언제든지 오류가 표시됩니다. currentUserSubject이 널 (null)과 널의 다음 잘못인가?로 초기화되기 때문에 나는
private currentUserSubject = new BehaviorSubject<firebase.User |null>(null);
나는 그것 때문에 인터페이스가 아닌 객체 new firebase.User()
로 초기화 할 수 없습니다입니다 ... 그 의심.
또한 currentUserSubject를 제목으로 선언하면 동일한 오류가 발생합니다.
private currentUserSubject = new Subject();
주체/ReplaySubject에 firebase.User 인터페이스를 변환하는 가장 좋은 방법은 무엇입니까? 사용자가 프로파일 구성 요소를 변경할 때 firebase 서버에서 동적 업데이트가되도록이 작업을 수행하려고합니다.
감사합니다.
귀하의 오류가 이해가되지 않습니다. 나는 여기에서 그것을 시도하고 작동한다 : https://plnkr.co/edit/etWUx93vtQkfp0mkhbnU?p=preview 당신은'set currentUserSubject (v) {'어딘가에 메소드가 없습니까? – acdcjunior