2016-10-31 62 views
1

我有一個immutable.js映射。例如:如何清除一個immutable.js映射回其默認值

//默認情況下,當用戶

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

上首先得到現在,這取決於他們如何得到我的應用程序 - 我填寫上面「myObject的」使用不同的數據。

如此,例如:可以說,他們來自pathA // pathA通過一些數據...滋潤myObject的

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

如此,例如:可以說,他們來自pathB

**這是問題來自何處。我有這個以前的myObject的「狀態」在附近。我需要「清除並回到初始狀態」。我正在使用REDX。

// pathB通過一些數據...滋潤myObject的

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

的數據梳理等。我需要它「清楚了。」。好奇的是,如果有一個Immutable.js方法能夠刷新一個新的myObject,這與初始狀態相同。我是immutable.js的新手,所以我有點好奇爲什麼它很難做簡單的事情:-)

+0

只保留對初始/默認狀態對象的引用,例如命名爲'defaultObject',然後一旦用戶訪問該頁面,就填充該頁面。 – forrert

回答

0

immutable.js對象不'知道'它的'默認'是什麼,所以沒有重置它的方法。如果你在你的應用程序中默認的對象只是不停到參考的變量,就像你,如果它是一個普通的JavaScript對象:

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

然後,當用戶到達某個路徑,你只需做您的修改並將它們保留在不同的變量中:

var myObject = defaultObject.set(...); 
相關問題