Angular 错误:InvalidPipeArgument:“[object]”ngrx异步管道
我的主应用程序组件调度一个操作,从API获取数据并将其加载到属性配置中的存储中,然后当页面加载时,我的表单组件从存储中选择配置,并将其绑定到子组件,然后使用异步管道显示它。我看过的其他帖子说,问题是这个值不是可观察的,但我知道我的值是可观察的,因为我已经订阅了它,并且可以记录对象数组。我就是不能让它通过异步管道 配置中的数据对象是satOptions satOptions[]的数组 父母恩戈尼尼特Angular 错误:InvalidPipeArgument:“[object]”ngrx异步管道,angular,asynchronous,rxjs,observable,ngrx,Angular,Asynchronous,Rxjs,Observable,Ngrx,我的主应用程序组件调度一个操作,从API获取数据并将其加载到属性配置中的存储中,然后当页面加载时,我的表单组件从存储中选择配置,并将其绑定到子组件,然后使用异步管道显示它。我看过的其他帖子说,问题是这个值不是可观察的,但我知道我的值是可观察的,因为我已经订阅了它,并且可以记录对象数组。我就是不能让它通过异步管道 配置中的数据对象是satOptions satOptions[]的数组 父母恩戈尼尼特 this.config$ = this.store.select((state:any) =>
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>
attr.set绑定显示[对象]
我真是不知所措,我尝试过订阅和重新分配,结果都是一样的。我做错了什么?在不知道完整代码的情况下,我假设您正在向子模板传递一个数组而不是一个可观察的数组,这意味着您不再需要使用异步管道 家长:
<my-child [items]="items | async"></my-child>
儿童:
<li *ngFor="let item of items">{{ item.name }}</li>
商店的呼叫不总是异步的吗?我尝试不使用管道,错误消失了,但是数据属性仍然显示[object object]Yea,如果您从存储中选择它,它始终是可观察的。data attr无法显示javascript对象,因此[object object]。如果你真的想向对象显示,你必须将其JSON.stringify。这很奇怪,我有另一个项目,它像这样从存储中流式传输数据,效果很好。我也见过很多其他人这样做。是因为我在应用程序中调度了操作,然后在以后从另一个组件中选择了数据吗?问题是,它是可观察的类型,我已经证实了这一点。那么,你能在你的回答中解释为什么在子选择器上使用| async进行绑定有效,但在子html模板中不起作用吗?你以前是怎么做的?您是否在这两个组件中都使用了异步管道?因为如果只在它工作时执行,那么在父组件或子组件中执行它并不重要。我建议让你的子组件尽可能简单,这意味着你把你的项目作为一个数组而不是一个可观察的。
<my-child [items]="items | async"></my-child>
<li *ngFor="let item of items">{{ item.name }}</li>