2
我誤解了它的目的或它的工作原理嗎?爲什麼使用withMutations會得到不同的結果?
var menuItems = Immutable.List.of(
{ parent_id: 0, id: 1 },
{ parent_id: 1, id: 2 },
{ parent_id: 1, id: 3 }
);
var results1 = menuItems
.filter(function(menuItem) { return menuItem.parent_id === 1; }) // Filter out items with parent_id = 1
.sort(function(childA, childB) { return childA.sort_order - childB.sort_order; }); // Sort them by sort_order
var results2 = menuItems.withMutations(function(list) {
list
.filter(function(menuItem) { return menuItem.parent_id === 1; }) // Filter out items with parent_id = 1
.sort(function(childA, childB) { return childA.sort_order - childB.sort_order; }); // Sort them by sort_order
});
console.log(results1.size); // 2
console.log(results2.size); // 3
我的理解是,他們會產生相同的結果,但withMutations
會更快,因爲操作的鏈接。
獎勵:https://github.com/facebook/immutable-js/issues/196#issuecomment-74131152 在未來的版本中,當你嘗試做我做的事情時,Immutable會拋出一個錯誤 – oskarth 2015-02-12 19:31:12