zoukankan      html  css  js  c++  java
  • [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());
  • 相关阅读:
    Rancher安装
    JDK8日期时间对象
    String经典面试题
    String
    单例模式
    多线程
    接口
    代码块
    内存吞金兽(Elasticsearch)的那些事儿 -- 常见问题痛点及解决方案
    内存吞金兽(Elasticsearch)的那些事儿 -- 写入&检索原理
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6040259.html
Copyright © 2011-2022 走看看