我正在 HomeComponente 中工作,我正在从数据库中提取两个数组的数据,我正在使用信号来存储我的查询
aList = signal<A[]>([])
bList = signal<B[]>([])
我的组件显示数组项的列表,单击按钮列表会发生变化,因此我开发了一个 ReferenceSignal,仅更改该值并避免口是心非
listReference = signal<WritableSignal<A[] | B[]>>(aList)
我想问一下,这是一个好的做法吗?如果我有一个信号存储对另一个信号的引用,那么信号在内部如何工作?
谢谢
我想问一下,这是一个好的做法吗?如果我有一个信号存储对另一个信号的引用,那么信号在内部如何工作?
不,你只是嵌套信号,除非你找到这样做的真正充分的理由,否则你可以用更简单的方法来做!我们可以使用
computed
信号,它会触发一个变化,当它里面的信号发生变化时,这也可以毫不费力地生成你需要的东西!
aList = signal<A[]>([]); // load data into signals at a later point of time!
bList = signal<B[]>([]); // load data into signals at a later point of time!
toggle = signal<string>('a'); // this signal can be used as trigger to toggle between the two signals a and b
listReference: WritableSignal<A[] | B[]> = computed(() => {
const toggle = this.toggle();
return toggle === 'a' ? this.aList() : this.bList();
});
HTML
<button (click)="toggle.set(toggle() === 'a' ? 'b' : 'a')"> Toggle the views</button>