码迷,mamicode.com
首页 > Web开发 > 详细

[Immutable.js] Updating nested values with ImmutableJS

时间:2016-11-07 19:38:31      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:return   table   sam   info   eve   pts   mmu   back   ejs   

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

标签:return   table   sam   info   eve   pts   mmu   back   ejs   

原文地址:http://www.cnblogs.com/Answer1215/p/6040259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!