У меня есть эта директива, которую я использую для анимации изменений высоты компонентов. Но поскольку мы обновили с Angular 8 до 9, похоже, что hostPropertyName @grow
больше не поддерживается. Это директива:
import {
Directive,
OnChanges,
Input,
ElementRef,
HostBinding
} from "@angular/core";
@Directive({
selector: "[smoothHeight]",
host: { "[style.display]": '"block"' }
})
export class SmoothHeightDirective implements OnChanges {
@Input()
smoothHeight;
pulse: boolean;
startHeight: number;
constructor(private element: ElementRef) {}
@HostBinding("@grow")
get grow() {
return { value: this.pulse, params: { startHeight: this.startHeight } };
}
setStartHeight() {
this.startHeight = this.element.nativeElement.clientHeight;
}
ngOnChanges() {
this.setStartHeight();
this.pulse = !this.pulse;
}
}
Chrome выдает следующую ошибку:
core.js:6185 ERROR TypeError: Cannot read property '11' of null
Safari предлагает следующее:
TypeError: null is not an object (evaluating 'componentLView[RENDERER]')
И Firefox:
ERROR TypeError: "componentLView is null"
Есть предложения о том, что я делаю неправильно, и как это исправить?