InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe',无法修改HTML



我正在努力使用Angular和Ngrx上的应用程序填充下拉菜单。该应用使用下拉列表组件,该下拉组件在整个应用程序中用于下拉列表,因此我无法修改它。

该组件的HTML对我的问题最重要的是:

<option *ngFor="let option of options" [value]="stringifyOption(option.value)" [selected]="option.value === (selectedValue | async)">
   {{option.text}}
</option>

我从商店中获得了下拉选项,这是对象(dateOptions)的数组。每个对象都有一个属性值(周),我将获得和设置为下拉列表的选项。

this.weekDropdownOptions = dateOptions.map(weekObj => weekObj.week);

游戏机中的日志记录dropdownoptions返回像我期望的那样的选项数组,如这样:

["04/01 - 04/07", "04/08 - 04/14"]

我的HTML具有下拉列表的选择器,并设置[options]="weekDropdownOptions"

我似乎无法克服这个错误:

无效的pipeargument:'[对象对象]'for Pipe'asyncpipe'。

它指向下拉组件,但是我无法修改HTML。我可以在代码中做什么才能完成这项工作?

async管道期望可观察到的对象。看到selectedValue的填充方式以及为什么与async管道一起使用会很有趣。

这是stackblitz https://stackblitz.com/edit/angular-vv7pzs

的差异的示例

async管道订阅可观察或承诺,并返回其发出的最新值。

根据错误,SelectedValue是一个对象,因此您无法使用异步管。

最新更新