2017-03-16 43 views
2

我有一個表單並在提交時發送一個被一個效果捕獲的動作。該效果然後執行http調用。我想知道如何關閉這個動作的後面完成/失敗的我會做到以下幾點:使用NGRX處理表單狀態/ @Effects

  • 顯示成功的消息,一旦動作完成
  • 重置一切準備就緒時,形式是接下來要使用
  • 領域
  • 炫耀的行動失敗

我明白我可以重新派遣行動的回一個錯誤來填充存儲與多個標誌successerror等。然而,復位形式很可能會通過調用完成一個函數。訂閱商店並致電小孩的相關功能是否可以接受?就好像我希望組件能夠像效果一樣能夠聽取動作。

回答

2

如果你的影響休息,不影響商店,但應該只顯示一個通知 - 那麼有兩種方法,我會說:

1)在你的組件注入Actions如你所說自己:

class SomeComponent { 
    constructor(actions: Actions) { 
     actions.ofType(SOME_EVENT) 
      .do(myThing) 
      .takeUntil(componentIsDestroyed) 
      .subscribe(); 
    } 
} 

2)或者根本就不去了效果 - 和行動路,只是調用一個簡單的服務方法:

class SomeComponent { 
    constructor(myService: CoolService) { 
    } 

    onClick(): void { 
     mySevice.makeRequest() 
      .do(myThing) 
      .subscribe(); 
    } 
}