所以我一直在学习和使用Signals在Angular 上,这是令人兴奋的.然而,在一些用例中,我觉得存在一些摩擦.我想不出一个好的模式,当您有一个包含input signals
的组件,并且您想要在某个输入值发生变化时触发重新获取数据.
computed
显然不是一个好办法,因为它们不可能是同步的.和effect
,根据文件,不应该修改组件状态.因此,这似乎也是不可能的.而ngOnChanges正在(长期)被弃用,取而代之的是基于信号的组件和无区域.
请考虑以下组件:
@Component()
export class ChartComponent {
dataSeriesId = input.required<string>();
fromDate = input.required<Date>();
toDate = input.required<Date>();
private data = signal<ChartData | null>(null);
}
每当输入信号之一获得新值时,我希望触发重新获取数据,并将私有data
信号的值设为update
.
人们将如何处理这件事?最佳实践是什么?是否生效并绕过规则以修改状态?