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

Atividade 03.05 - não entendi a resposta correta

Na atividade 03.05, há o seguinte trecho de código

transferir() { console.log('Solicitada nova transferência'); if (this.ehValido()) { const valorEmitir = { valor: this.valor, destino: this.destino }; this.aoTransferir.emit(valorEmitir); } }

A variável "aoTransferir" é "emitida" quando a transferência for válida, mas essa variável não é declarada como @Output e nem inicializada como EventEmitter.

A resposta correta da atividade é "A propriedade $event não foi transmitida para o método do componente.", mas não entendi essa resposta. No meu entendimento, o erro seria devido ao fato de essa variável nem sequer ter sido declarada como emitter.

Assim, gostaria de uma explicação mais detalhada sobre essa atividade.

4 respostas

Prezado Frank,

Abaixo da resposta tem um detalhamento do motivo:

"Alternativa correta! Não é obrigatório, mas sempre que haja a necessidade de propagação de valores a variável $event deve ser passada como parâmetro para o método em questão."

Prezao Marco,

Agradeço sua resposta. No entanto, a dúvida era justamente quanto ao detalhamento do motivo, o qual não me parece correto.

solução!

Oi, Frank!

Em alguns exercícios eles suprimem algumas partes de código, e não mostram todas as declarações. Porém, podemos inferir que ela foi inicializada por causa desse trecho de código: this.aoTransferir.emit(valorEmitir); Além disso, foi dito também que a aplicação foi executada e o modal foi exibido. Se a variável em questão não tivesse sido inicializada corretamente, o código não compilaria.

A questão desse exercício é perceber que a assinatura do método trasferir() não está adequada, uma vez que o método não está recebendo a propriedade $event, o que é obrigatório quando há necessidade de propagação de valores.

Olá, Renata! Agora entendi, obrigado pelo esclarecimento.