Угловые сигналы — вычисленный сигнал на основе входных данных.
Я прошу мнения о моем варианте использования.
очень упрощенный пример:
@Input() parentComponent;
childSignal = computed(() => this.parentComponent.parentSignal());
Этот код выдаст ошибку времени выполнения, потому чтоparentComponent
не определено, когда сигнал вычисляется впервые.
Каков будет ваш путь? Инициализация сигнала вngOnChanges
?
2 ответа
Вы также можете определить установщик псевдонимов для входного сигнала, например
readonly userIdSignal = signal(null);
@Input({alias: 'userIdSignal'})
set _userIdSignal(v: string) { this.userIdSignal.set(v) }
... и удалите установщик псевдонимов, как только у нас появятся реальные входные сигналы, как сказал @Simon_Weaver.
В конечном итоге мы получим{ signal: true }
компоненты, которые имеют реальные входные сигналы.
На данный момент (пока эта функция не существует) самым простым подходом является:
Создайте сигнал, который обновляется в
ngOnChanges
.@Input('userId') userId: string; ngOnChanges(changes: SimpleChanges) { this.userIdSignal.set(this.userId); } userIdSignal = signal(null);