2016-10-31 4 views
1

私はimmutable.jsマップを持っています。たとえば:どのようにしてimmutable.jsマップをデフォルトに戻すか

//デフォルトでは、ユーザーが最初に今

var myObject = Immutable.Map({ 
    productID: '', 
    colors: ['brown', 'red'], 
    sku: '' 
    sizes: [10] 
}) 

ページ

になり、彼らは私のアプリを取得する方法に応じて - 私は移入異なるデータと上記「myObjectという」という。

ので、例えば:そうmyObjectという

var myObject = Immutable.Map({ 
    productID: '090ABl', 
    colors: ['brown', 'red', 'yellow'], 
    sku: '__whatever' 
    sizes: [10, 18, 9] 
}) 

を水和... // pathAは、いくつかのデータを渡し、彼らはpathA から来たと言うことができます、例えば:彼らはpathB

から来たと言うことができます

**これは問題の原因です。 myObjectの前の "状態"がぶら下がっています。私は "クリアして元の状態に戻る"必要があります。私はreduxを使用しています。

// pathBは、データがなどコーミングさmyObjectという

var myObject = Immutable.Map({ 
    productID: '090XZLG', 
    colors: ['red', 'yellow'], 
    sku: '__food' 
    sizes: [9] 
}) 

を水和...いくつかのデータを渡し..私はそれがする必要がある "アウトをクリア。"。 MyObjectを新しい状態でリフレッシュすることを可能にするImmutable.jsメソッドがあるかどうか不思議です。これは、初期状態と同じです。私はimmutable.jsの新人ですから、なぜ単純なことをするのが難しいのか不思議です:-)

+0

あなたの初期状態オブジェクトまたはデフォルト状態オブジェクトへの参照を保持してください。 'defaultObject'という名前で、ユーザがページを訪問すると、あなたはそれを設定します。 – forrert

答えて

0

immutable.jsオブジェクトは 'デフォルト'が何であるかを知っていないので、それをリセットする方法。

var defaultObject = Immutable.Map({ 
    productID: '', 
    colors: ['brown', 'red'], 
    sku: '' 
    sizes: [10] 
}) 

、ユーザが特定のパスに到着したときに、あなたは、単に作る:アプリケーションでデフォルトのオブジェクトを持っている場合だけで、それはプレーンなJavaScriptのオブジェクトだった場合だろうあなたのように、変数にそのへの参照を保持あなたの変更を保存して別の変数に保存してください:

関連する問題