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

[Bug] Problema com FormControl

Fazendo a validação do componente EditarPensamento do projeto Memoteca acabei travada em um problema.

o valor do input de conteúdo não aparece adequadamente. screenshot 1 - página editar pensamentoComo é possivel ver pelo screenshot, apesar do input não ter sido preenchido pelo objeto vindo do banco de dados, o resto das variáveis foi (o modelo logo embaixo por exemplo completado por interpolação). Abaixo vão alguns prints do template e do componente.

Checando os códigos da professora, e de outros componentes que usam formulário não consegui notar nenhum erro.

screenshot 2 - component editar pensamentoscreenshot 3 - template editar pensamento

4 respostas

Olá Maria Clara, tudo bem?

Vendo os trechos de código que você enviou não consegui identificar o motivo para esse comportamento.

O seu projeto está no gitHub? Você poderia me enviar o link por favor? Assim, fica mais fácil testar e encontrar o que está causando o problema.

Aguardo. :)

Oi Nayanne, está sim, coloquei lá. https://github.com/mclarar/projetoMemoteca

acrescentei só no .gitignore o node_modules do backend, fora isso fui só seguindo os passos da aula.

solução!

Oi Maria Clara, voltei :)

Baixei seu projeto e encontrei esse erro no console

Imagem de um erro no console do navegador escrito formGroup expects a FormGroup instance

Fiz uns testes e vi que o problema pode estar acontecendo porque criamos o atributo formulário no componente de editar (form! : FormGroup;), mas ele só é inicializado quando o service obtém o retorno do observable, depois que já houve a renderização do HTML.

Para corrigir, você pode inserir uma checagem com a diretiva ngIf na tag form, assim:

<form [formGroup]="form" *ngIf="form">

Agora, o formulário só será renderizado após a obtenção das informações.

Aqui o erro desapareceu e quando clico em editar vêm todas as informações certinhas, me avisa se ocorre o mesmo comportamento aí, certo?

Abraços, bons estudos!

Obrigada, deu tudo certo. Era isso mesmo.

Mas a autoria e o modelo também fazendo parte do "form" não deveriam ter dado errado tbm? Tipo só o conteúdo estava sendo renderizado antes do Template?