[Immutable.js] Updating nested values with ImmutableJS

Posted Answer1215

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Immutable.js] Updating nested values with ImmutableJS相关的知识,希望对你有一定的参考价值。

The key to being productive with Immutable JS is understanding how to update values that are nested. Using setIn you can place a new value directly into an existing or new path. If you need access to the previous value before setting the new one, you can use updateIn instead. updateIn accepts the same path lookups as setIn, but gives you a callback function instead so that you can use the previous value however you wish and return an updated version.

 

const {Map, List, fromJS} = Immutable;

const state = fromJS({
    home: {
        loading: false,
        messages: [
            {
                type: info,
                message: Welcome to our website
            }
        ]
    }
});

// Add a new message with updateIn
const updated = state.updateIn([home, messages], msgs => {
    return msgs.push(Map({type: info, message: Hi there!}));
});
console.log(updated.getIn([home, messages]).toJS());


// Update a message in a known path
const updated2 = state.setIn([home, messages, 0, message], new message!);
console.log(updated2.getIn([home, messages]).toJS());

 

以上是关于[Immutable.js] Updating nested values with ImmutableJS的主要内容,如果未能解决你的问题,请参考以下文章

Redux 开发工具 Chrome 扩展 Immutable.js 导致错误

[Immutable,js] Iterating Over an Immutable.js Map()

[Immutable.js] Converting Immutable.js Structures to Javascript and other Immutable Types

[Immutable.js] Exploring Sequences and Range() in Immutable.js

[Immutable.js] Working with Subsets of an Immutable.js Map()

[Immutable.js] Lightning Fast Immutable.js Equality Checks with Hash Codes