2017-01-11 16 views
0

私は外部api-libraryから得られるjavascriptオブジェクトの完全なハンドを扱っています。私はreduxを使用して、反応するアプリケーションに入ってくるオブジェクトを保存したいと思います。reduxストアとアプリケーションの間でjavascriptオブジェクトを変換する

これらのオブジェクトは、fromJSONtoJSONという2つの便利なメソッドが付属しているes2015クラスです。私のreduxストアをシリアル化できるようにするためには、私はそれらを普通のオブジェクトに変換する方法が必要です(toJSONは私にdictを返します)。私のアプリケーションでは、私はそれらに付属のメソッドが必要なので、APIから来るので、私はこれらのオブジェクトを使用する必要があり、APIクライアントもこれらの特定のオブジェクトを必要とします。

これは私がこのオンラインについて多くを見つけることができないか、まったく間違った経路に向いているので、これは共通のニーズですか?どのように私はそのような変換を実装するだろうか?私は現在、私の行動にes2015クラスをつけて、私のレデューサーでtoJSONと呼ぶことを考えています。私はreduxからjsonをキャッチし、fromJSON機能を使ってクラスに戻す特定のセレクタを作成することができました(私はそれらをメモする必要がありますか?)。これらのセレクタはmapStateToPropsで使用してから、最後に小道具にマッピングすることができます。

あなたがこれについてどのように考えるのか、どうすればこのプロセスを改善できるか教えてください。

+0

1.「es2015クラス」とはどういう意味ですか?これらの単純なオブジェクトはJSONとしてシリアル化されていますか? 2. 'mapStateToProps'に関して - あなたはおそらくメモをしたいでしょう。私は、http://redux.js.org/docs/recipes/ComputingDerivedData.html –

+0

を読んで、es2015クラスによって私はhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classesで読むことをお勧めします。 – choise

答えて

0

Reduxによると、状態はシリアライズ可能である必要があります。何らかの点でローカルに(ローカルストレージの何らかの形式で)状態を格納する必要があるかもしれないので、そうでなければなりません。しかし、これは国家が平易な物で構成されなければならないという意味ではありません。

たとえば、多くのプロジェクトでは、Immutable.jsオブジェクトがその状態で使用されます。 Immutable.jsオブジェクトを直列化するオーバーヘッドがあります。しかし、それはtransit-immutable-jsを使って行うことができます。

私はこのプリンシパルがあなたの質問によく似ていることを理解しています。

私があなたの質問から理解していることは、(あなたがES2015クラスを意味するものであれば)fromJSONとtoJSONメソッドによって直列化/直列化が可能であることです。

したがって、 "API"オブジェクトをstateで使用し、ローカルに保存する必要がある場合にのみシリアル化できます。

+0

私は直列化が必要だと言っていたはずです。そして、はい、私は最後にその方法を行った。私はレデューサーのオブジェクトをシリアライズし、最初のオブジェクトタイプに逆変換をメモするために再選択を使用します。 – choise

関連する問題