我的计划是将表单的值存储在ngrx存储中,以允许用户在需要时浏览站点并返回表单。思路是使用可观察对象从存储中重新填充表单的值。
以下是我目前的做法:
constructor(private store: Store<AppState>, private fb: FormBuilder) {
this.images = images;
this.recipe$ = store.select(recipeBuilderSelector);
this.recipe$.subscribe(recipe => this.recipe = recipe); // console.log() => undefined
this.recipeForm = fb.group({
foodName: [this.recipe.name], // also tried with an OR: ( this.recipe.name || '')
description: [this.recipe.description]
})
}
这个店铺被赋予了一个初始值,我已经看到它通过我的选择器函数正确地传递了,但在创建表单时,我不认为该值已经返回。因此,this.recipe
仍然是未定义的。
这种方法是错误的吗?还是我可以以某种方式确保在创建表单之前返回observable?
@Input
改变时应用更改。我已经更新了答案。无论您决定采取哪种方式,我都鼓励您将事物分成容器和表示组件,因为这确实会使生活更轻松。 - cartant[formGroup] =“recipe $ | async”
而不使用容器来完成它。 - Nate May@Input
setter 而不是OnChanges
。 - cartant