2017-09-25 10 views
0

典型的な状況:httpでデータを取得し、ngrx/storeに格納します。しかし、データにはJS Dateオブジェクトの代わりに文字列が含まれています。私はどこでそれらを変換すべきですか?サービスthis.http(...).map(convert).subscribe(store.dispatch(new AddAction)) 文字列をどこに変換するのですか?

    1. case add: convert(payload); return state
    2. またはアクションでの減速で:

      export class AddMany implements Action { 
          readonly type = addMany 
      
          constructor(public payload: FinishedCall[]) { 
           this.payload = this.convertData(payload) 
          } 
      } 
      

    私はサービスでそれをやるべきだと思いますが、私は怖いです非常に大きなサービスファイルを取得する

  • +0

    これはあなたとビジネスオブジェクトの設計次第です。 JSの日付タイプを自分のタイプスクリプトコードで扱いたい場合は、できるだけ早くJSの日付に、できるだけ遅くJSの日付から文字列に変換してください(必要な場合)。必要に応じて変換を実行するためのヘルパーメソッドをいくつか作成し、これを実装することを決めた場所でそれらを再利用します。 – Igor

    +0

    できるだけ早くDateに変換することをお勧めします。 – x1site

    +0

    あなたの質問に対する答えを知っています。 – Igor

    答えて

    0

    私はお勧めします減速機内で変換機能を実行する。

    リダクターは副作用がないこと。つまり、自分のスコープの外にあるものは変更しないでください。彼らは単純に、次のアプリケーション状態を減速器の引数の純粋な関数として計算する必要があります。

    ここでは、初期状態(現在の番号)とアクションを渡していることがわかります。各アクションを処理するには、switch文を使用する方法が一般的です。ディスパッチャに明示的に加入する必要がある各減速機の代わりに、すべてのアクションが各減速機に渡され、それは関心のあるアクションを処理し、次の減速機に新しい状態を返す。

    希望します。

    関連する問題