错误: 无效管道参数: '[object Object]' ngrx 异步管道



我的主应用程序组件调度一个操作,该操作从 API 获取数据并将其加载到属性config中的存储中,然后在页面加载时,我的表单组件从存储中选择配置,并将其绑定到子组件,然后子组件与async pipe一起显示它。我看过的其他帖子说问题在于该值不是可观察的,但我知道我的值是,因为我已经订阅了它,并且可以记录对象数组。我只是无法让它通过异步管道。

来自 config 的数据对象是 SATOPTIONS 的数组SatOption[]

export interface SatOption {
satelliteId: number;
satelliteName: string;
channels: Channel[];
}

父 ngOnInit

this.config$ = this.store.select((state:any) => state.appReducer.config)
this.config$.subscribe(slice => console.log(slice))

子模板

<select [formControl]="satControl">
<option
class="hide-select"
value="default"
disabled
>
pick a satellite
</option>
<option
*ngFor="let sat of (config$ | async)"
[value]="sat.channels"
[attr.set]="sat"
>
{{ sat.satelliteName }}
</option>
</select>

我的控制台.log:

Array(3) [ {…}, {…}, {…} ]

attr.set 绑定显示[object Object]

我真的很茫然,我尝试订阅和重新分配并得到相同的结果。我做错了什么?

在不知道完整代码的情况下,我会假设您将数组(而不是可观察数组(传递给您的子模板,这意味着您不再需要使用async管道。

父母:

<my-child [items]="items | async"></my-child>

孩子:

<li *ngFor="let item of items">{{ item.name }}</li>

最新更新