Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problemas com o observable

Ao implementar o componente rodapé fazemos o seguinte:

    user$ = new Observable();

    constructor(private userService: UserService) {
        this.user$ = this.userService.getUser();
    }

    ngOnInit() {
        this.user$ = this.userService.getUser();
    }

Porém tanto o rodapé e o cabeçalho da minha aplicação só são atualizados depois do reload da pagina. Existe uma causa específica para esse comportamento? Talvez alguma versão de dependência que eu estou usando ou coisa do tipo?

2 respostas
solução!

Boa tarde, Leonardo! Como vai?

Dê uma olhada nessa aula e veja se com ela vc consegue resolver o seu problema!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Tudo certo, Gabriel?

Eu estou usando o Behavior Subject, por isso estou achando estranho o atual comportamento.

@Injectable({ providedIn: 'root' })
export class UserService {

    private userSubject = new BehaviorSubject<User>(null);
    private userName: string = '';

    constructor(private tokenService: TokenService) {
        this.tokenService.hasToken() &&
            this.decodeAndNotify();
    }

    setToken(token) {
        this.tokenService.setToken(token);
    }

    getUser() {
        return this.userSubject.asObservable();
    }

    logout() {
        this.tokenService.removeToken();
        this.userSubject.next(null);
    }

    isLogged() {
        return this.tokenService.hasToken();
    }

    getUserName() {
        return this.userName;
    }

    private decodeAndNotify() {
        const token = this.tokenService.getToken();
        const user = jwt_decode(token) as User;
        this.userName = user.name;
        this.userSubject.next(user);
    }
}

Não recebo mensagem de erro em lugar nenhum, não faço ideia do que pode ser.