• [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());
  • 相关阅读:
    使用 pandas 导出数据
    Vue -- 基础语法和使用
    Django-用户模块与权限系统相关
    rest-framework之权限组件
    rest-framework之认证组件
    rest-framework之解析器
    Markdown -语法说明
    rest-framework之APIView 序列化组件
    eggjs-对接微信公众号
    常用站点
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6040259.html
Copyright © 2020-2023  润新知