Tenho um antigo @Input
que passa uma função de retorno de chamada do componente pai, que eu gostaria de converter em um sinal de entrada.
Usando a entrada do antigo decorador, posso chamar a função passada simplesmente fazendo this.callback()
. Isso, é claro, não funciona com um sinal de entrada porque a mesma declaração simplesmente retorna o valor da entrada... que neste caso é uma função, então eu pensaria que this.callback()()
funcionaria para obter o valor da entrada (a função) e então realmente chamar a função, mas parece que não funciona.
Se eu passar uma função para um sinal de entrada (atualmente definido como callback = input.required<() => void>()
), há uma maneira de realmente chamar a função ou preciso apenas continuar com a antiga entrada do decorador por enquanto?
Certifique-se
.bind(this)
de que o retorno de chamada seja executado no escopo pai.O retorno de chamada também deve ser passado como está, sem executá-lo.
Demonstração do Stackblitz
Faça do seu retorno de chamada uma função de seta em vez de um método regular. Dessa forma, você manterá o
this
contexto.