admin管理员组

文章数量:1406911

I'm working on a flux application and am considering adopting immutable.js to maintain state. I saw that react supplies its own helper for updating immutable objects (.html), but couldn't tell how it was much different from immutable's own setIn and updateIn methods (i.e, i can already pare objects with === to se if they changes with setIn). Is there a reason to use the react helper with immutable.js? Is it just syntactic sugar?

TL;DR is:

var map = Immutable.fromJS({bar: 'baz'});
map2 = React.addons.update(map, {
        bar: {$set: 'foo'}
    });

different from

var map = Immutable.fromJS({bar: 'baz'});
map2 = map.set('bar', 'foo');

I'm working on a flux application and am considering adopting immutable.js to maintain state. I saw that react supplies its own helper for updating immutable objects (http://facebook.github.io/react/docs/update.html), but couldn't tell how it was much different from immutable's own setIn and updateIn methods (i.e, i can already pare objects with === to se if they changes with setIn). Is there a reason to use the react helper with immutable.js? Is it just syntactic sugar?

TL;DR is:

var map = Immutable.fromJS({bar: 'baz'});
map2 = React.addons.update(map, {
        bar: {$set: 'foo'}
    });

different from

var map = Immutable.fromJS({bar: 'baz'});
map2 = map.set('bar', 'foo');
Share Improve this question asked Dec 4, 2014 at 4:09 FensterFenster 3403 silver badges9 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

React.addons.update does not work with Immutable.js values; it works with plain JavaScript objects and arrays.

var map = { bar: 'baz' };
var map2 = React.addons.update(map, {
  bar: {$set: 'foo'}
});
console.log(map2); // A plain JS object of value `{bar: 'foo'}`

The types in Immutable.js are implemented using special data structures for performance and space benefits; the plain JavaScript objects consumed and produced by React.addons.update, obviously, are not.

本文标签: javascriptUsing React39s immutable helper with ImmutablejsStack Overflow