亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Bug 子組件輸入到補丁反應表單不會在 Oninit 上更新

Bug 子組件輸入到補丁反應表單不會在 Oninit 上更新

慕虎7371278 2023-08-05 20:42:32
我在 ngrx 實體存儲中獲取了根據尋呼機以塊的形式顯示的數據,我的問題是 rxjs 它如何記住分頁,例如我從服務器獲取第一頁數據,它可以工作,然后如果我獲取下一頁,它現在可以正常加載如果我回到第一頁,數據被 switchMap 截斷,如果我再次轉到前面一頁,當商店中有數據時,switchMap 會給我一個空數組...之后我完全對 rxjs 感到困惑...這是我在創建新數組時也顯示的代碼,一切正常我只是不明白這種奇怪的效果為什么會導致不可變數據?我還使用 ngrx 在 Oninit 上的子組件中加載輸入的保存狀態,我使用保存的狀態修補表單,然后在表單上設置一個偵聽器,以便每次輸入更改時我都會保存它。開發中的問題它工作得很好,但在生產中它無法修補輸入,我猜測在 Oninit 運行后加載數據需要更長的時間。處理這種情況的最佳方法是什么,嘗試了不同的方法,一些方法給出錯誤,導致數據在視圖渲染之前被修改,另一種方法讓我陷入無限循環。這是子代碼export class ChildComponent implements OnInit {  @Output() updateFilters = new EventEmitter<string>(false);  @Input() filters: MessageFilter;  form: FormGroup;  constructor(fb: FormBuilder) {    this.form = fb.group({ kind: [] });  }  ngOnInit() {    if (this.filters.kind) {      this.form.patchValue({kind: this.filters.kind});    }    this.form.valueChanges.pipe(      untilDestroyed(this),      distinctUntilChanged(),    ).subscribe(values => {      this.updateFilters.emit(values.kind);    });  }}
查看完整描述

1 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

改用怎么樣OnChanges?檢查您的更改狀態/值@Input() filters


import { OnChanges, SimpleChanges } from '@angular/core';



@Component({...})

export class ChildComponent implements OnInit, OnChanges {


   ...


   @Input() filters: MessageFilter;


   ngOnChanges({ filters }: SimpleChanges) {

       console.log(filters);     // if you want to check any states/activities

    

       if (filters && filters.currentValue && filters.currentValue.kind)

            this.form.patchValue({ kind: this.filters.kind });   

   }


   ngOnInit() {

       this.form.valueChanges.pipe(

          untilDestroyed(this),

          distinctUntilChanged(),

       ).subscribe(values => this.updateFilters.emit(values.kind));

   }


}


查看完整回答
反對 回復 2023-08-05
  • 1 回答
  • 0 關注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號