Kế hoạch của tôi là lưu trữ các giá trị của biểu mẫu trong cửa hàng ngrx của tôi để cho phép người dùng của tôi điều hướng xung quanh trang web và quay lại biểu mẫu nếu họ muốn. Ý tưởng sẽ là các giá trị của biểu mẫu sẽ trở lại từ cửa hàng bằng cách sử dụng một quan sát được.Làm thế nào tôi có thể khởi tạo một dạng Angular2 phản ứng bằng cách sử dụng một Observable?
đây là làm thế nào tôi đang làm nó hiện:
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]
})
}
Các cửa hàng được đưa ra một giá trị ban đầu mà tôi đã thấy qua chức năng chọn của tôi đúng, nhưng theo thời gian các hình thức của tôi được tạo ra, tôi don không nghĩ rằng giá trị đã trở lại. Do đó, this.recipe
vẫn chưa được xác định.
Đây có phải là cách tiếp cận sai, hoặc bằng cách nào đó tôi có thể đảm bảo rằng có thể quan sát được trước khi tạo biểu mẫu?
Tôi không thể làm cho nó hoạt động theo cách này. 'startsWith() không tồn tại trên kiểu Observable'. chức năng đó dường như chỉ tồn tại cho các chuỗi. –
Tôi xin lỗi, phương thức phải là 'startWith'. https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/startwith.md – shusson
'.startWith()' làm việc trên lần lặp đầu tiên, nhưng khi lần thứ hai (chế độ dev) chạy nó lại không xác định. Tôi đã làm cho nó hoạt động bằng cách loại bỏ 'startWith()' và thay đổi bộ chọn của tôi thành: 'return _.cloneDeep (state.recipebuilder) || someDefaultValue; ' –