Угловые сигналы — вычисленный сигнал на основе входных данных.

Я прошу мнения о моем варианте использования.

очень упрощенный пример:

      @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);
    
Другие вопросы по тегам